久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

第 n 個嵌套元素的選擇器

selector for nth nested elements(第 n 個嵌套元素的選擇器)
本文介紹了第 n 個嵌套元素的選擇器的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述

我正在研究無法確定可嵌套性的樹形視圖,但想定義一些嵌套規(guī)則以進(jìn)行樣式設(shè)置.例如,我希望第一級項目具有特定的邊框.緊挨在下方的嵌套項目具有不同的邊框.我有一個工作示例,但它是靜態(tài)且冗長的.我知道必須有更好的方法使用選擇器,但我似乎無法讓它發(fā)揮作用.這是我目前的解決方案-

I am working on a tree view of undeterminable nestability, but would like to define some nested rules for styling. For example, I want the first level item to have a particular border. Nested items immediately underneath to have a different border. I have a working example, but it is static and verbose. I know there has to be a better way using selectors, but I can't seem to make it work. Here is my current solution-

.item {
    border-left-color: #somecolor1;
}
.item > .item {
    border-left-color: #somecolor2;
}
.item > .item > .item {
    border-left-color: #somecolor3;
}
.item > .item > .item > .item {
    border-left-color: #somecolor4;
}
.item > .item > .item > .item > .item {
    border-left-color: #somecolor5;
}

所以這行得通,但顯然它有點冗長.有沒有更好的辦法?

So this works, but obviously it is kind of verbose. Is there a better way?

推薦答案

在 CSS 中,選擇器字符串主要描述嵌套結(jié)構(gòu),目前不存在任何分代跳過選擇器,因此理論上您可能會執(zhí)行類似 的操作.item:nth-grandchild(4) 替換您的第五個示例.

In CSS the selector string is largely describing the nesting structure, and there does not currently exist any generational skipping selectors such that you might theoretically do something like .item:nth-grandchild(4) to replace your fifth example.

如果減少 css 的冗長對您來說非常重要(假設(shè)您有多達(dá) 10 甚至 100 級的嵌套正在打開),那么您真的需要考慮修改 html 本身以減少需要CSS.這可以通過服務(wù)器端腳本(PHP 等)或客戶端腳本(Javascript)動態(tài)完成,或者由您靜態(tài)完成.您選擇哪種方式取決于多種因素.

If reducing verbosity of your css is of high importance to you (lets say you have up 10 or even 100 levels of nesting you are switching on), then really you need to look into modifying the html itself in order to reduce the css needed. That can be done dynamically via server-side scripting (PHP, etc.), or client-side scripting (Javascript), or statically by you. Which way you choose will depend on a variety of factors.

html修改可以是更具體的類或者直接樣式屬性的形式,但我推薦前者.這里至少有四種減少 css 的方法:

The html modification can be in the form of more specific classes or direct style properties, but I recommend the former. Here are at least four ways css would be reduced:

#1 多個類,一個指示級別

示例 HTML

<div class="item L-1">
 <div class="item L-2">
  <div class="item L-3">
  </div>
 </div>
</div>

示例 CSS

.item.L-1 {
    border-left-color: #somecolor1;
}
.item.L-2 {
    border-left-color: #somecolor2;
}
.item.L-3 {
    border-left-color: #somecolor3;
}

#2 多個類,一種指示顏色

示例 HTML

<div class="item LBC-1"> 
 <div class="item LBC-2">
  <div class="item LBC-3">
  </div>
 </div>
</div>

示例 CSS

.item.LBC-1 {
    border-left-color: #somecolor1;
}
.item.LBC-2 {
    border-left-color: #somecolor2;
}
.item.LBC-3 {
    border-left-color: #somecolor3;
}

#3 單個類名表示級別

示例 HTML

<div class="item-L1"> 
 <div class="item-L2">
  <div class="item-L3">
  </div>
 </div>
</div>

示例 CSS

[class *= "item-"] {
    /* common css properties for the items goes here */
}

.item-L1 {
    border-left-color: #somecolor1;
}
.item-L2 {
    border-left-color: #somecolor2;
}
.item-L3 {
    border-left-color: #somecolor3;
}

#4 每個項目的樣式屬性

示例 HTML

<div class="item" style="border-left-color: #somecolor1"> 
 <div class="item" style="border-left-color: #somecolor2">
  <div class="item"  style="border-left-color: #somecolor3">
  </div>
 </div>
</div>

示例 CSS

/* none to control color */

最佳"的討論

通常動態(tài)解決方案最終會生成類似于 #4 的 html,這最終會使 html 變得非常冗長,我個人不建議這樣做.但是,那些動態(tài)解決方案不需要這樣做,而是可以添加類名,如 #1-3.

Discussion of "Best"

Often dynamic solutions end up producing html like that of #4, which ends up making the html very verbose, and I personally would not recommend it. However, those dynamic solutions do not need to do that, but could instead add class names like #1-3.

最終什么是最好的"在很大程度上取決于您想要實現(xiàn)的目標(biāo)、您擁有多少控制權(quán)以及其他哪些屬性也需要更改.就個人而言,我也會避免使用 #2,因為它通過將類名與左邊框顏色"關(guān)聯(lián)起來,開始將演示文稿與 html 聯(lián)系在一起.對我來說,解決方案 #1 或 #3 是最好的,因為它們只是設(shè)置類來幫助 css 了解 .item 處于什么級別",然后允許針對該級別進(jìn)行特定定位任何你可能需要它的水平.

What is ultimately "best" depends a lot on what you are trying to achieve, how much control you have, and what other properties need changing as well. Personally, I would avoid #2 as well, because it begins to tie presentation too much to html by having a class name associated with the "left border color." To me, solution #1 or #3 would be best, as those are simply setting classes that help the css to know what "level" the .item is at, which then allows for specific targeting to that level for anything you may need it for.

當(dāng)然,如果您真的要處理 100 個嵌套級別,那么即使對于解決方案 #1-3,您也可能需要研究一些 css 預(yù)處理器來生成所需的 100 個級別的代碼.但是 css 輸出仍然遠(yuǎn)遠(yuǎn)少于使用當(dāng)前方法所需的長選擇器字符串.

Of course, if you were really dealing with 100 nested levels, then even for solutions #1-3, you might want to look into some css preprocessor to generate the 100 levels of code needed. But the css output would still be far less than the long selector strings needed using the current method you are doing.

這篇關(guān)于第 n 個嵌套元素的選擇器的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

Style every third element?(每隔三個元素設(shè)置樣式?)
Why shouldn#39;t I use ID selectors in CSS?(為什么我不應(yīng)該在 CSS 中使用 ID 選擇器?)
What does img[class*=quot;alignquot;] mean in CSS?(CSS 中的 img[class*=“align] 是什么意思?)
CSS: Last element on line(CSS:最后一個元素)
How do I select every other div class element using just CSS (no js)(如何僅使用 CSS(無 js)選擇所有其他 div 類元素)
Tool for checking unused CSS selectors?(檢查未使用的 CSS 選擇器的工具?)
主站蜘蛛池模板: 九九亚洲精品 | 久久九七| 国产精品美女久久久av超清 | 中文字幕在线观看一区二区 | 日本黄色片免费在线观看 | 一区二区av | 日韩一级免费电影 | 欧美一区久久 | 成人h电影在线观看 | 亚洲国产精品久久久 | 999观看免费高清www | 日韩欧美一区二区三区免费看 | 精品久久久久久 | 日韩精品久久一区二区三区 | 亚洲精品高清视频 | 中文字幕高清 | 久久久精品高清 | 99精品亚洲国产精品久久不卡 | 九九色综合 | 欧美在线一区二区三区 | 色久伊人 | 99在线观看视频 | 国产午夜精品一区二区三区在线观看 | 欧美理伦片在线播放 | 日日干日日 | 欧美日韩成人在线观看 | 亚洲少妇综合网 | 日本一区二区高清视频 | 久久国产高清视频 | 免费午夜视频在线观看 | 日本一卡精品视频免费 | 欧美一区免费在线观看 | 欧洲亚洲一区 | 男人天堂国产 | 91在线色视频 | 亚洲大片一区 | 老司机成人在线 | www.奇米| 99热都是精品 | 精品视频一二区 | 精品美女视频在线观看免费软件 |