簡體   English   中英

CSS styles 不繼承嵌套列表中的樣式

[英]CSS styles not inheriting a style in a nested list

我希望它不繼承嵌套列表中的程式化項目符號點。 相反,我希望它們是規則的點。 我如何編輯我的 CSS 樣式來消除這個問題?

 .check-list { margin: 0; padding-left: 2.0rem; margin-bottom: 32px; }.check-list li { position: relative; list-style-type: none; padding-left: 2.5rem; margin-bottom: 0.5rem; }.check-list li:before { content: ''; display: block; position: absolute; left: 0; top: -2px; width: 5px; height: 15px; border-width: 0 3px 3px 0; border-style: solid; border-color: #005A77; opacity: 0.7; transform-origin: bottom left; transform: rotate(45deg); }
 <ul class="check-list"> <li>One</li> <li>Two <ul> <li>Two.One</li> <li>Two.Two</li> </ul> </li> </ul>

您可以只使用直接子選擇器 利用

.check-list > li
{...}
.check-list > li:before
{...}

代替

.check-list li
{...}
.check-list li:before
{...}

並且嵌套列表仍然堅持circle而不是dot /圓盤。 您應該通過在.checklist之前設置樣式來覆蓋它

li {
  list-style-type: disc;
}

 li { list-style-type: disc; }.check-list { margin: 0; padding-left: 2.0rem; margin-bottom: 32px; }.check-list > li { position: relative; list-style-type: none; padding-left: 2.5rem; margin-bottom: 0.5rem; }.check-list > li:before { content: ''; display: block; position: absolute; left: 0; top: -2px; width: 5px; height: 15px; border-width: 0 3px 3px 0; border-style: solid; border-color: #005A77; opacity: 0.7; transform-origin: bottom left; transform: rotate(45deg); }
 <ul class="check-list"> <li>One</li> <li>Two <ul> <li>Two.One</li> <li>Two.Two</li> </ul> </li> </ul>

子組合器應該解決這個問題。

 .check-list { margin: 0; padding-left: 2.0rem; margin-bottom: 32px; }.check-list > li { position: relative; list-style-type: none; padding-left: 2.5rem; margin-bottom: 0.5rem; }.check-list > li:before { content: ''; display: block; position: absolute; left: 0; top: -2px; width: 5px; height: 15px; border-width: 0 3px 3px 0; border-style: solid; border-color: #005A77; opacity: 0.7; transform-origin: bottom left; transform: rotate(45deg); }
 <ul class="check-list"> <li>One</li> <li>Two <ul> <li>Two.One</li> <li>Two.Two</li> </ul> </li> </ul>

只改變這一行: .check-list li:before {.check-list li:not(ul ul li):before {

而這個 class:

.check-list li ul li {
  list-style-type: circle;
}

 .check-list { margin: 0; padding-left: 2.0rem; margin-bottom: 32px; }.check-list li { position: relative; list-style-type: none; padding-left: 2.5rem; margin-bottom: 0.5rem; }.check-list li ul li { list-style-type: circle; }.check-list li:not(ul ul li):before { content: ''; display: block; position: absolute; left: 0; top: -2px; width: 5px; height: 15px; border-width: 0 3px 3px 0; border-style: solid; border-color: #005A77; opacity: 0.7; transform-origin: bottom left; transform: rotate(45deg); }
 <ul class="check-list"> <li>One</li> <li>Two <ul> <li>Two.One</li> <li>Two.Two</li> </ul> </li> </ul>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM