ตัวอย่างเช่น:
div > p.some_class {
/* Some declarations */
}
สิ่งที่ว่าไม่>
หมายถึงเครื่องหมาย?
ตัวอย่างเช่น:
div > p.some_class {
/* Some declarations */
}
สิ่งที่ว่าไม่>
หมายถึงเครื่องหมาย?
คำตอบ:
>
เป็นcombinator เด็กบางครั้งเรียกว่า combinator ลูกหลานโดยตรงโดยไม่ตั้งใจ 1
ซึ่งหมายความว่าตัวเลือกdiv > p.some_class
เพียงเลือกย่อหน้า.some_class
ที่ซ้อนกันโดยตรงภายในdiv
และไม่ย่อหน้าใด ๆ ที่ซ้อนกันภายในอีก
ภาพประกอบ:
<div>
<p class="some_class">Some text here</p> <!-- Selected [1] -->
<blockquote>
<p class="some_class">More text here</p> <!-- Not selected [2] -->
</blockquote>
</div>
สิ่งที่เลือกและสิ่งที่ไม่:
เลือก
นี้p.some_class
ตั้งอยู่ภายในโดยตรงdiv
ดังนั้นจึงมีการสร้างความสัมพันธ์ระหว่างผู้ปกครองกับองค์ประกอบ
ไม่ได้เลือก
สิ่งนี้p.some_class
มีอยู่blockquote
ภายในภายในdiv
, แทนที่จะเป็นของdiv
ตัวเอง แม้ว่านี่p.some_class
จะเป็นลูกหลานของdiv
มันไม่ใช่เด็ก มันเป็นหลาน
ดังนั้นแม้ว่าdiv > p.some_class
จะไม่ตรงกับองค์ประกอบนี้div p.some_class
จะใช้combinator ลูกหลานแทน
1 หลายคนไปไกลกว่าจะเรียกมันว่า "ลูกโดยตรง" หรือ "ลูกทันที" แต่มันไม่จำเป็นเลย (และทำให้ฉันรำคาญอย่างเหลือเชื่อ) เพราะองค์ประกอบลูกเป็นคำนิยามในทันทีดังนั้นพวกเขาจึงหมายถึงสิ่งเดียวกัน ไม่มีสิ่งเช่น "เด็กทางอ้อม"
>
(เครื่องหมายมากกว่า) เป็น CSS Combinator
คอมบิเนเตอร์เป็นสิ่งที่อธิบายความสัมพันธ์ระหว่างตัวเลือก
ตัวเลือก CSS สามารถมีตัวเลือกง่าย ๆ ได้มากกว่าหนึ่งตัว ระหว่างตัวเลือกอย่างง่ายเราสามารถรวม combinator
มีสี่ combinators ที่แตกต่างกันใน CSS3:
หมายเหตุ: <
ไม่ถูกต้องในตัวเลือก CSS
ตัวอย่างเช่น:
<!DOCTYPE html>
<html>
<head>
<style>
div > p {
background-color: yellow;
}
</style>
</head>
<body>
<div>
<p>Paragraph 1 in the div.</p>
<p>Paragraph 2 in the div.</p>
<span><p>Paragraph 3 in the div.</p></span> <!-- not Child but Descendant -->
</div>
<p>Paragraph 4. Not in a div.</p>
<p>Paragraph 5. Not in a div.</p>
</body>
</html>
เอาท์พุท:
.entry-content > * {"code" }
ที่ตามมาหมายความว่า.entry-content {"other code" }
อะไร ไม่.entry-content > *
ครอบคลุมเด็กทุกคนentry-content
ใช่หรือไม่
อย่างที่คนอื่นพูดถึงมันเป็นตัวเลือกลูก นี่คือลิงค์ที่เหมาะสม
มันตรงกับp
องค์ประกอบที่มีระดับsome_class
ที่มีโดยตรงdiv
ภายใต้
p
แท็กทั้งหมดที่มีคลาสsome_class
ซึ่งเป็นชายด์โดยตรงของdiv
แท็ก
<div>
<p class="some_class">lohrem text (it will be of red color )</p>
<div>
<p class="some_class">lohrem text (it will NOT be of red color)</p>
</div>
<p class="some_class">lohrem text (it will be of red color )</p>
</div>
CSS
div > p.some_class{
color:red;
}
เด็กทุกคนที่อยู่<p>
ด้วย.some_class
จะได้รับการนำไปใช้กับพวกเขา
(ตัวเลือกลูก) ได้รับการแนะนำใน css2 div p {} เลือกองค์ประกอบ p ทั้งหมดที่ decedent ขององค์ประกอบ div ในขณะที่ div> p เลือกเฉพาะองค์ประกอบลูก p ไม่ใช่เด็กที่ยิ่งใหญ่และเด็กที่ยิ่งใหญ่เป็นต้น
<style>
div p{ color:red } /* match both p*/
div > p{ color:blue } /* match only first p*/
</style>
<div>
<p>para tag, child and decedent of p.</p>
<ul>
<li>
<p>para inside list. </p>
</li>
</ul>
</div>
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ CSS Ce [ผู้ใช้งานและการใช้งานตรวจสอบบล็อกของฉัน css selectorsและcss3 selectors
เครื่องหมายยิ่งใหญ่ (>) ตัวเลือกใน CSS หมายความว่าตัวเลือกทางด้านขวาเป็นผู้สืบทอด / ลูกโดยตรงของสิ่งที่อยู่ทางซ้าย
ตัวอย่าง:
article > p { }
หมายถึงสไตล์ย่อหน้าที่มาหลังจากบทความเท่านั้น
#something a
จะเป็นตัวเลือกเด็ก