<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:series="https://publishpress.com/"
	>

<channel>
	<title>css selector Archives - Tomoshare</title>
	<atom:link href="https://blog.tomosia.com.vn/tag/css-selector/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.tomosia.com.vn/tag/css-selector/</link>
	<description>Kênh chia sẻ kiến thức Tomosia Việt Nam</description>
	<lastBuildDate>Tue, 28 Nov 2023 06:10:37 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://blog.tomosia.com.vn/wp-content/uploads/2023/09/cropped-icon-32x32.png</url>
	<title>css selector Archives - Tomoshare</title>
	<link>https://blog.tomosia.com.vn/tag/css-selector/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Sử dụng :where() và :is() trong CSS Selector &#8211; Ngắn gọn và mạnh mẽ</title>
		<link>https://blog.tomosia.com.vn/su-dung-where-va-is-trong-css-selector-ngan-gon-va-manh-me/</link>
					<comments>https://blog.tomosia.com.vn/su-dung-where-va-is-trong-css-selector-ngan-gon-va-manh-me/#comments</comments>
		
		<dc:creator><![CDATA[Dang Van Luan]]></dc:creator>
		<pubDate>Tue, 28 Nov 2023 06:10:35 +0000</pubDate>
				<category><![CDATA[Html/CSS]]></category>
		<category><![CDATA[css selector]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<guid isPermaLink="false">https://blog.tomosia.com.vn/?p=1998</guid>

					<description><![CDATA[<p>CSS (Cascading Style Sheets) ngày càng phát triển với những tính năng mới, và một số pseudo-classes mới&#8230;</p>
<p>The post <a href="https://blog.tomosia.com.vn/su-dung-where-va-is-trong-css-selector-ngan-gon-va-manh-me/">Sử dụng :where() và :is() trong CSS Selector &#8211; Ngắn gọn và mạnh mẽ</a> appeared first on <a href="https://blog.tomosia.com.vn">Tomoshare</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p> CSS (Cascading Style Sheets) ngày càng phát triển với những tính năng mới, và một số pseudo-classes mới như <code>:where()</code> và <code>:is()</code> đã giúp làm cho việc chọn lựa và áp dụng kiểu cho các phần tử trở nên linh hoạt và dễ dàng hơn. Trong bài viết này, chúng ta sẽ khám phá cách sử dụng <code>:where()</code> và <code>:is()</code> để tối ưu hóa CSS selector.</p>



<h3 id="i-tai-sao-chung-ta-can-where-va-is" class="wp-block-heading">I. <strong>Tại sao chúng ta cần <code>:where()</code> và <code>:is()</code>?</strong></h3>



<p>Trước khi có những pseudo-classes này, để áp dụng kiểu cho nhiều selector, chúng ta thường phải sử dụng một danh sách dài các selector, đôi khi dẫn đến mã CSS dài và khó đọc. Cùng xem xét một ví dụ:</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#f6f6f4;--cbp-line-number-width:8.4296875px;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#333545;color:#ebebe6">CSS</span><span role="button" tabindex="0" data-code="h1, h2, h3, h4, h5, h6 {
  color: blue;
}" style="color:#f6f6f4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula-soft" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F286C4">h1</span><span style="color: #F6F6F4">,</span><span style="color: #F286C4"> h2</span><span style="color: #F6F6F4">,</span><span style="color: #F286C4"> h3</span><span style="color: #F6F6F4">,</span><span style="color: #F286C4"> h4</span><span style="color: #F6F6F4">,</span><span style="color: #F286C4"> h5</span><span style="color: #F6F6F4">,</span><span style="color: #F286C4"> h6</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">  </span><span style="color: #97E1F1">color</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> </span><span style="color: #BF9EEE">blue</span><span style="color: #F6F6F4">;</span></span>
<span class="line"><span style="color: #F6F6F4">}</span></span></code></pre></div>



<p>Trong trường hợp này, chúng ta muốn áp dụng màu xanh cho tất cả các phần tử tiêu đề từ h1 đến h6. Tuy nhiên, khi cần loại bỏ một số phần tử khỏi danh sách, chúng ta phải lặp lại toàn bộ danh sách và loại bỏ chúng:</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#f6f6f4;--cbp-line-number-width:8.4296875px;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#333545;color:#ebebe6">CSS</span><span role="button" tabindex="0" data-code="h1, h2, h3, h5, h6 {
  color: blue;
}" style="color:#f6f6f4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula-soft" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F286C4">h1</span><span style="color: #F6F6F4">,</span><span style="color: #F286C4"> h2</span><span style="color: #F6F6F4">,</span><span style="color: #F286C4"> h3</span><span style="color: #F6F6F4">,</span><span style="color: #F286C4"> h5</span><span style="color: #F6F6F4">,</span><span style="color: #F286C4"> h6</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">  </span><span style="color: #97E1F1">color</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> </span><span style="color: #BF9EEE">blue</span><span style="color: #F6F6F4">;</span></span>
<span class="line"><span style="color: #F6F6F4">}</span></span></code></pre></div>



<p>Với <code>:where()</code> và <code>:is()</code>, chúng ta có cách tiếp cận mới giúp giảm sự lặp lại và làm cho mã CSS trở nên sáng sủa hơn.</p>



<h3 id="ii-su-dung-where-va-is" class="wp-block-heading">II. <strong>Sử Dụng <code>:where()</code> và <code>:is()</code></strong></h3>



<h4 id="1-su-dung-where" class="wp-block-heading">1. <strong>Sử dụng <code>:where()</code></strong></h4>



<p>Cú pháp của <code>:where()</code> rất đơn giản. Nó cho phép bạn nhóm các selector lại một cách hiệu quả mà không cần phải lặp lại toàn bộ danh sách:</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#f6f6f4;--cbp-line-number-width:8.4296875px;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#333545;color:#ebebe6">CSS</span><span role="button" tabindex="0" data-code=":where(h1, h2, h3, h4, h5, h6) {
  color: blue;
}" style="color:#f6f6f4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula-soft" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F286C4; font-style: italic">:</span><span style="color: #62E884; font-style: italic">where</span><span style="color: #F286C4">(h1</span><span style="color: #F6F6F4">,</span><span style="color: #F286C4"> h2</span><span style="color: #F6F6F4">,</span><span style="color: #F286C4"> h3</span><span style="color: #F6F6F4">,</span><span style="color: #F286C4"> h4</span><span style="color: #F6F6F4">,</span><span style="color: #F286C4"> h5</span><span style="color: #F6F6F4">,</span><span style="color: #F286C4"> h6)</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">  </span><span style="color: #97E1F1">color</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> </span><span style="color: #BF9EEE">blue</span><span style="color: #F6F6F4">;</span></span>
<span class="line"><span style="color: #F6F6F4">}</span></span></code></pre></div>



<p>Câu lệnh trên sẽ có kết quả giống như ví dụ đầu tiên, áp dụng màu xanh cho tất cả các phần tử tiêu đề từ h1 đến h6</p>



<h4 id="2-su-dung-is" class="wp-block-heading">2. <strong>Sử dụng <code>:is()</code></strong></h4>



<p>Tương tự như <code>:where()</code>, <code>:is()</code> cung cấp một cách khác để nhóm các selector:</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#f6f6f4;--cbp-line-number-width:8.4296875px;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#333545;color:#ebebe6">CSS</span><span role="button" tabindex="0" data-code=":is(h1, h2, h3, h4, h5, h6) {
  color: blue;
}" style="color:#f6f6f4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula-soft" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F286C4; font-style: italic">:</span><span style="color: #62E884; font-style: italic">is</span><span style="color: #F286C4">(h1</span><span style="color: #F6F6F4">,</span><span style="color: #F286C4"> h2</span><span style="color: #F6F6F4">,</span><span style="color: #F286C4"> h3</span><span style="color: #F6F6F4">,</span><span style="color: #F286C4"> h4</span><span style="color: #F6F6F4">,</span><span style="color: #F286C4"> h5</span><span style="color: #F6F6F4">,</span><span style="color: #F286C4"> h6)</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">  </span><span style="color: #97E1F1">color</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> </span><span style="color: #BF9EEE">blue</span><span style="color: #F6F6F4">;</span></span>
<span class="line"><span style="color: #F6F6F4">}</span></span></code></pre></div>



<p>Cả hai cách tiếp cận đều tạo ra kết quả tương tự và giúp bạn làm cho mã CSS ngắn gọn hơn và dễ đọc hơn.</p>



<h3 id="iii-uu-diem-va-luu-y" class="wp-block-heading">III. <strong>Ưu điểm và Lưu ý</strong></h3>



<h4 id="1-ngan-gon-va-de-doc" class="wp-block-heading">1. <strong>Ngắn Gọn và Dễ Đọc:</strong></h4>



<p>Cả <code>:where()</code> và <code>:is()</code> giúp giảm sự lặp lại trong mã CSS, làm cho nó trở nên ngắn gọn và dễ đọc hơn.</p>



<h4 id="2-tich-hop-de-dang" class="wp-block-heading">2. <strong>Tích hợp Dễ Dàng:</strong></h4>



<p>Cả hai pseudo-classes này tích hợp tốt với các selector khác, giúp bạn duy trì tính tương thích và tính linh hoạt trong mã nguồn của mình.</p>



<h4 id="3-de-bao-tri" class="wp-block-heading">3. <strong>Dễ Bảo Trì:</strong></h4>



<p>Khi cần thêm hoặc loại bỏ các selector, bạn chỉ cần thực hiện thay đổi ở một địa điểm duy nhất, giúp dễ bảo trì hơn.</p>



<h4 id="4-trinh-duyet-ho-tro" class="wp-block-heading">4. <strong>Trình duyệt hỗ trợ:</strong></h4>



<p><strong>:where()</strong></p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="327" src="http://blog.tomosia.com.vn/wp-content/uploads/2023/11/where_support-1024x327.png" alt="" class="wp-image-2030" srcset="https://blog.tomosia.com.vn/wp-content/uploads/2023/11/where_support-1024x327.png 1024w, https://blog.tomosia.com.vn/wp-content/uploads/2023/11/where_support-300x96.png 300w, https://blog.tomosia.com.vn/wp-content/uploads/2023/11/where_support-768x245.png 768w, https://blog.tomosia.com.vn/wp-content/uploads/2023/11/where_support-380x121.png 380w, https://blog.tomosia.com.vn/wp-content/uploads/2023/11/where_support-800x255.png 800w, https://blog.tomosia.com.vn/wp-content/uploads/2023/11/where_support-1160x370.png 1160w, https://blog.tomosia.com.vn/wp-content/uploads/2023/11/where_support.png 1382w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p><strong>:is()</strong></p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="354" src="http://blog.tomosia.com.vn/wp-content/uploads/2023/11/is_support-1024x354.png" alt="" class="wp-image-2031" srcset="https://blog.tomosia.com.vn/wp-content/uploads/2023/11/is_support-1024x354.png 1024w, https://blog.tomosia.com.vn/wp-content/uploads/2023/11/is_support-300x104.png 300w, https://blog.tomosia.com.vn/wp-content/uploads/2023/11/is_support-768x266.png 768w, https://blog.tomosia.com.vn/wp-content/uploads/2023/11/is_support-380x131.png 380w, https://blog.tomosia.com.vn/wp-content/uploads/2023/11/is_support-800x277.png 800w, https://blog.tomosia.com.vn/wp-content/uploads/2023/11/is_support-1160x401.png 1160w, https://blog.tomosia.com.vn/wp-content/uploads/2023/11/is_support.png 1368w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 id="iv-ket-luan" class="wp-block-heading">IV. <strong>Kết Luận</strong></h3>



<p>Sử dụng <code>:where()</code> và <code>:is()</code> trong CSS selector mang lại những lợi ích đáng kể về sự ngắn gọn và dễ đọc. Đặc biệt, chúng là một công cụ hữu ích khi bạn cần áp dụng kiểu cho nhiều phần tử cùng loại một cách linh hoạt. Hãy tích hợp chúng vào công cụ lập trình CSS của bạn để trải nghiệm sự tiện lợi mà chúng mang lại.</p>
<p>The post <a href="https://blog.tomosia.com.vn/su-dung-where-va-is-trong-css-selector-ngan-gon-va-manh-me/">Sử dụng :where() và :is() trong CSS Selector &#8211; Ngắn gọn và mạnh mẽ</a> appeared first on <a href="https://blog.tomosia.com.vn">Tomoshare</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.tomosia.com.vn/su-dung-where-va-is-trong-css-selector-ngan-gon-va-manh-me/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
		<item>
		<title>Khám Phá CSS Parent Selector :has()</title>
		<link>https://blog.tomosia.com.vn/kham-pha-css-parent-selector-has/</link>
					<comments>https://blog.tomosia.com.vn/kham-pha-css-parent-selector-has/#comments</comments>
		
		<dc:creator><![CDATA[Dang Van Luan]]></dc:creator>
		<pubDate>Tue, 28 Nov 2023 06:07:36 +0000</pubDate>
				<category><![CDATA[Html/CSS]]></category>
		<category><![CDATA[css selector]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<guid isPermaLink="false">https://blog.tomosia.com.vn/?p=2036</guid>

					<description><![CDATA[<p>CSS, ngôn ngữ định dạng trang web mạnh mẽ, ngày càng được cải tiến với những tính năng&#8230;</p>
<p>The post <a href="https://blog.tomosia.com.vn/kham-pha-css-parent-selector-has/">Khám Phá CSS Parent Selector :has()</a> appeared first on <a href="https://blog.tomosia.com.vn">Tomoshare</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>CSS, ngôn ngữ định dạng trang web mạnh mẽ, ngày càng được cải tiến với những tính năng mới giúp lập trình viên tối ưu hóa mã CSS của mình. Một trong những thêm mới gần đây là pseudo-class <code>:has()</code>, mang lại khả năng lựa chọn các phần tử dựa trên nội dung của chúng. Trong bài viết này, chúng ta sẽ chi tiết tìm hiểu về cú pháp và ứng dụng của <code>:has()</code>.</p>



<h3 id="i-gioi-thieu-ve-has" class="wp-block-heading">I. <strong>Giới Thiệu về :has()</strong></h3>



<p><code>:has()</code> là một pseudo-class mới trong CSS, cho phép bạn chọn các phần tử cha dựa trên nội dung của các phần tử con bên trong chúng. Cú pháp cơ bản như sau:</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#f6f6f4;--cbp-line-number-width:8.4296875px;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#333545;color:#ebebe6">CSS</span><span role="button" tabindex="0" data-code="parent:has(child) {
  /* CSS styles */ 
}" style="color:#f6f6f4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula-soft" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F286C4">parent</span><span style="color: #F286C4; font-style: italic">:</span><span style="color: #62E884; font-style: italic">has</span><span style="color: #F286C4">(child)</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">  </span><span style="color: #7B7F8B">/* CSS styles */</span><span style="color: #F6F6F4"> </span></span>
<span class="line"><span style="color: #F6F6F4">}</span></span></code></pre></div>



<p>Với <code>:has()</code>, bạn có thể áp dụng kiểu cho các phần tử cha chứa một hoặc nhiều phần tử con cụ thể, làm cho việc chọn lựa và định dạng trang web trở nên linh hoạt hơn.</p>



<h3 id="ii-su-dung-cu-phap-has" class="wp-block-heading">II. <strong>Sử Dụng Cú Pháp :has()</strong></h3>



<h4 id="1-chon-parent-co-phan-tu-con-cu-the" class="wp-block-heading">1. <strong>Chọn Parent Có Phần Tử Con Cụ Thể</strong></h4>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#f6f6f4;--cbp-line-number-width:8.4296875px;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#333545;color:#ebebe6">CSS</span><span role="button" tabindex="0" data-code="div:has(p) {
  background-color: #f0f0f0;
}" style="color:#f6f6f4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula-soft" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F286C4">div</span><span style="color: #F286C4; font-style: italic">:</span><span style="color: #62E884; font-style: italic">has</span><span style="color: #F286C4">(p)</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">  </span><span style="color: #97E1F1">background-color</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> </span><span style="color: #BF9EEE">#f0f0f0</span><span style="color: #F6F6F4">;</span></span>
<span class="line"><span style="color: #F6F6F4">}</span></span></code></pre></div>



<p>Trong trường hợp này, tất cả các <code>div</code> chứa ít nhất một phần tử <code>p</code> sẽ có nền màu xám nhạt.</p>



<h4 id="2-ket-hop-nhieu-phan-tu-con" class="wp-block-heading">2. <strong>Kết Hợp Nhiều Phần Tử Con</strong></h4>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#f6f6f4;--cbp-line-number-width:8.4296875px;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#333545;color:#ebebe6">CSS</span><span role="button" tabindex="0" data-code="article:has(h2, p) {
  border: 1px solid #ccc;
}" style="color:#f6f6f4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula-soft" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F286C4">article</span><span style="color: #F286C4; font-style: italic">:</span><span style="color: #62E884; font-style: italic">has</span><span style="color: #F286C4">(h2</span><span style="color: #F6F6F4">,</span><span style="color: #F286C4"> p)</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">  </span><span style="color: #97E1F1">border</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> </span><span style="color: #BF9EEE">1</span><span style="color: #F286C4">px</span><span style="color: #F6F6F4"> </span><span style="color: #BF9EEE">solid</span><span style="color: #F6F6F4"> </span><span style="color: #BF9EEE">#ccc</span><span style="color: #F6F6F4">;</span></span>
<span class="line"><span style="color: #F6F6F4">}</span></span></code></pre></div>



<p>Câu lệnh trên sẽ chọn tất cả các phần tử <code>article</code> chứa ít nhất một phần tử <code>h2</code> hoặc <code>p</code> và áp dụng đường viền xám nhạt.</p>



<h4 id="3-su-dung-nested-has" class="wp-block-heading">3. <strong>Sử Dụng Nested :has()</strong></h4>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#f6f6f4;--cbp-line-number-width:8.4296875px;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#333545;color:#ebebe6">CSS</span><span role="button" tabindex="0" data-code="section:has(article:has(h2)) {
  margin: 10px;
}" style="color:#f6f6f4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula-soft" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F286C4">section</span><span style="color: #F286C4; font-style: italic">:</span><span style="color: #62E884; font-style: italic">has</span><span style="color: #F286C4">(article</span><span style="color: #F286C4; font-style: italic">:</span><span style="color: #62E884; font-style: italic">has</span><span style="color: #F286C4">(h2))</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">  </span><span style="color: #97E1F1">margin</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> </span><span style="color: #BF9EEE">10</span><span style="color: #F286C4">px</span><span style="color: #F6F6F4">;</span></span>
<span class="line"><span style="color: #F6F6F4">}</span></span></code></pre></div>



<p>Trong trường hợp này, <code>section</code> sẽ được chọn nếu nó chứa ít nhất một <code>article</code> có chứa ít nhất một phần tử <code>h2</code>.</p>



<h3 id="iii-uu-diem-va-han-che" class="wp-block-heading">III. <strong>Ưu Điểm và Hạn Chế</strong></h3>



<h4 id="1-uu-diem-cua-has" class="wp-block-heading">1. <strong>Ưu Điểm của :has()</strong></h4>



<ul class="wp-block-list">
<li><strong>Linh Hoạt:</strong> Cho phép bạn chọn các phần tử cha dựa trên nội dung của phần tử con, mang lại sự linh hoạt cao khi định dạng trang web.</li>



<li><strong>Dễ Đọc:</strong> Làm cho mã CSS trở nên rõ ràng hơn, giảm sự phức tạp của selector.</li>
</ul>



<h4 id="2-han-che-va-luu-y" class="wp-block-heading">2. <strong>Hạn Chế và Lưu ý</strong></h4>



<ul class="wp-block-list">
<li><strong>Hạn Chế Sự Linh Hoạt:</strong> Mặc dù mạnh mẽ, nhưng <code>:has()</code> có thể hạn chế sự linh hoạt khi so sánh với một số phương pháp khác như JavaScript.</li>



<li><strong>Hỗ Trợ Trình Duyệt:</strong> Hiện tại, <code>:has()</code> chưa được hỗ trợ rộng rãi, vì vậy hãy kiểm tra hỗ trợ trình duyệt trước khi sử dụng.</li>
</ul>



<h4 id="3-trinh-duyet-ho-tro" class="wp-block-heading">3. Trình duyệt hỗ trợ</h4>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="422" src="http://blog.tomosia.com.vn/wp-content/uploads/2023/11/has_supprot-1024x422.png" alt="" class="wp-image-2038" srcset="https://blog.tomosia.com.vn/wp-content/uploads/2023/11/has_supprot-1024x422.png 1024w, https://blog.tomosia.com.vn/wp-content/uploads/2023/11/has_supprot-300x124.png 300w, https://blog.tomosia.com.vn/wp-content/uploads/2023/11/has_supprot-768x317.png 768w, https://blog.tomosia.com.vn/wp-content/uploads/2023/11/has_supprot-380x157.png 380w, https://blog.tomosia.com.vn/wp-content/uploads/2023/11/has_supprot-800x330.png 800w, https://blog.tomosia.com.vn/wp-content/uploads/2023/11/has_supprot-1160x478.png 1160w, https://blog.tomosia.com.vn/wp-content/uploads/2023/11/has_supprot.png 1370w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 id="iv-ket-luan" class="wp-block-heading">IV. <strong>Kết Luận</strong></h3>



<p>Pseudo-class <code>:has()</code> mang lại một cách tiếp cận mới và thú vị cho việc chọn các phần tử cha dựa trên nội dung của phần tử con trong CSS. Tuy nhiên, đối với sự hỗ trợ và linh hoạt, cân nhắc kết hợp <code>:has()</code> với các phương pháp khác để đảm bảo tính ổn định và tương thích trình duyệt. Hãy thử nghiệm và tận dụng sức mạnh của <code>:has()</code> để tối ưu hóa mã CSS của bạn.</p>
<p>The post <a href="https://blog.tomosia.com.vn/kham-pha-css-parent-selector-has/">Khám Phá CSS Parent Selector :has()</a> appeared first on <a href="https://blog.tomosia.com.vn">Tomoshare</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.tomosia.com.vn/kham-pha-css-parent-selector-has/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
	</channel>
</rss>
