मैं सीएसएस के साथ तालिका में tr
पहले को छोड़कर सभी तत्वों का चयन कैसे कर सकता हूं tr
?
मैंने इस पद्धति का उपयोग करने की कोशिश की , लेकिन पाया कि यह काम नहीं किया।
<tr>
और उनमें से बाकी के लिए एक अलग वर्ग है।
मैं सीएसएस के साथ तालिका में tr
पहले को छोड़कर सभी तत्वों का चयन कैसे कर सकता हूं tr
?
मैंने इस पद्धति का उपयोग करने की कोशिश की , लेकिन पाया कि यह काम नहीं किया।
<tr>
और उनमें से बाकी के लिए एक अलग वर्ग है।
जवाबों:
किसी वर्ग को पहले tr
या बाद के tr
s से जोड़कर । अकेले सीएसएस के साथ इच्छित पंक्तियों का चयन करने का कोई क्रॉसबोवर तरीका नहीं है।
हालाँकि, यदि आप Internet Explorer 6, 7 या 8 की परवाह नहीं करते हैं:
tr:not(:first-child) {
color: red;
}
tr:not(:first-of-type)
एक संभावित समाधान के रूप में भी इंगित करना चाहूंगा , यदि आप पहले सामान्य बच्चे के बजाय एक विशिष्ट चयनकर्ता के पहले उदाहरण की तलाश कर रहे हैं।
मुझे आश्चर्य है कि किसी ने भी साइबिंग कोम्बिनेटर के उपयोग का उल्लेख नहीं किया है, जो IE7 द्वारा समर्थित हैं और बाद में:
tr + tr /* CSS2, adjacent sibling */
tr ~ tr /* CSS3, general sibling */
वे दोनों बिल्कुल उसी तरह से कार्य करते हैं (वैसे भी HTML तालिकाओं के संदर्भ में):
tr:not(:first-child)
elem + elem
जब आप जिन तत्वों को लक्षित करना चाहते हैं, उनके लिए एक महान सामान्य समाधान एकमात्र बच्चे नहीं हैं। उदाहरण के लिए, यदि किसी <h2>
को कई <p>
टैग द्वारा अनुसरण किया जाता है , तो पहला <p>
उस मामले में पहला बच्चा नहीं है।
आदर्श समाधान लेकिन IE में समर्थित नहीं है
tr:not(:first-child) {css}
दूसरा समाधान सभी tr की शैली बनाना होगा और पहले बच्चे के लिए css के साथ ओवरराइड करना होगा:
tr {css}
tr:first-child {override css above}
ऐसा लगता है कि 'पहली पंक्ति' जिस पर आप बात कर रहे हैं वह आपका टेबल-हेडर है - इसलिए आपको वास्तव में उपयोग करने के बारे में सोचना चाहिए thead
और tbody
अपने मार्कअप ( यहां क्लिक करें ) के परिणामस्वरूप 'बेहतर' मार्कअप (शब्दार्थ रूप से सही, स्क्रीन्रेडर्स जैसी चीजों के लिए उपयोगी होगा) ) और आसान, सीएसएस-चयन के लिए क्रॉस-ब्राउज़र-फ्रेंडली संभावनाएं ( table thead ... { ... }
)
हालांकि प्रश्न का एक सभ्य जवाब पहले से ही है, मैं सिर्फ यह तनाव देना चाहता हूं कि :first-child
टैग उस आइटम प्रकार पर जाता है जो बच्चों का प्रतिनिधित्व करता है।
उदाहरण के लिए, कोड में:
<div id"someDiv">
<input id="someInput1" />
<input id="someInput2" />
<input id="someInput2" />
</div
यदि आप मार्जिन के साथ केवल दूसरे दो तत्वों को प्रभावित करना चाहते हैं, लेकिन पहले नहीं, तो आप ऐसा करेंगे:
#someDiv > input {
margin-top: 20px;
}
#someDiv > input:first-child{
margin-top: 0px;
}
वह यह है कि चूंकि input
बच्चे हैं, इसलिए आप first-child
चयनकर्ता के इनपुट हिस्से पर जगह बनाएंगे।
क्षमा करें, मुझे पता है कि यह पुराना है, लेकिन सभी tr तत्वों को उस तरह से स्टाइल न करें जिस तरह से आप चाहते हैं कि सभी को छोड़कर पहला और पूर्ण वर्ग का उपयोग करें: पहला-बच्चा जहाँ आप सभी tr तत्वों के लिए निर्दिष्ट किए गए चीज़ों को रद्द करते हैं।
इस उदाहरण से बेहतर विवरण:
tr {
border-top: 1px solid;
}
tr:first-child {
border-top: none;
}
/ पैट्रिक
एक अन्य विकल्प:
tr:nth-child(n + 2) {
/* properties */
}
हो सकता है कोई व्यक्ति लाभान्वित हो, नीचे मैंने क्या उपयोग किया है
ol li:not(:first-child) {
background: black;
color: white;
}
आप इस तरह से अपने CSS में एक छद्म वर्ग चयनकर्ता का उपयोग कर सकते हैं:
.desc:not(:first-child) {
display: none;
}
वह वर्ग को प्रथम तत्व के साथ वर्ग को लागू नहीं करेगा।
यहाँ एक उदाहरण के साथ एक JSField है: http://jsfiddle.net/YYTFT/ , और यह छद्म वर्ग चयनकर्ताओं को समझाने का एक अच्छा स्रोत है: http://css-tricks.com/pseudo-class-selectors/
first-child
वर्गों की उपेक्षा करता है।
आप एक वर्ग बना सकते हैं और वर्ग का उपयोग कर सकते हैं जब आप अपने भविष्य के सभी को परिभाषित करते हैं जो आप चाहते हैं (या नहीं चाहते) सीएसएस द्वारा चुना जाना चाहिए।
यह लिखकर किया जाएगा
<tr class="unselected">
और फिर आपके सीएसएस में लाइनें हैं (और उदाहरण के रूप में टेक्स्ट-एलायंस कमांड का उपयोग करके):
unselected {
text-align:center;
}
selected {
text-align:right;
}