能否改变 <li>
元素的 标记 大小?
请看下面的代码:
li {
list-style: square; /* I want to change the size of this squared bullet. */
}
我似乎找不到任何实现这个的方法。
能否改变 <li>
元素的 标记 大小?
请看下面的代码:
li {
list-style: square; /* I want to change the size of this squared bullet. */
}
我似乎找不到任何实现这个的方法。
你是指修改项目符号的大小,对吧?我认为这与 LI 标签的 font-size 相关。因此,你可以将 LI 的字体大小放大,然后对其中包含的元素进行缩小。添加额外的标记有点麻烦,但可以像这样实现:
li {font-size:omgHuge;}
li span {font-size:mehNormal;}
或者,您可以为列表符号指定一个图像文件,该文件可以随意放大:
ul{
list-style: square url("38specialPlusP.gif");
}
基于@dzimney的回答,并类似于@Crisman的回答(但不同)
那个回答很好,但存在缩进问题(项目符号出现在li
范围内)。你可能不想要这个。请看下面的简单示例列表(这是默认的HTML列表):
Lorem ipsum dolor sit amet, ei cum offendit partiendo iudicabit. At mei quaestio honestatis, duo dicit affert persecuti ei. Etiam nusquam cu his, nec alterum posidonium philosophia te. Nec an purto iudicabit, no vix quod clita expetendis.
Quem suscipiantur no eos, sed impedit explicari ea, falli inermis comprehensam est in. Vide dicunt ancillae cum te, habeo delenit deserunt mei in. Tale sint ex his, ipsum essent appellantur et cum.
但是,如果您使用上述方法,列表将如下所示(忽略项目符号的大小):
• Lorem ipsum dolor sit amet, ei cum offendit partiendo iudicabit. At mei quaestio honestatis, duo dicit affert persecuti ei. Etiam nusquam cu his, nec alterum posidonium philosophia te. Nec an purto iudicabit, no vix quod clita expetendis.
• Quem suscipiantur no eos, sed impedit explicari ea, falli inermis comprehensam est in. Vide dicunt ancillae cum te, habeo delenit deserunt mei in. Tale sint ex his, ipsum essent appellantur et cum.
因此,我推荐使用以下方法来解决这个问题:
li {
list-style-type: none;
position: relative; /* It's needed for setting position to absolute in the next rule. */
}
li::before {
content: '■';
position: absolute;
left: -0.8em; /* Adjust this value so that it appears where you want. */
font-size: 1.1em; /* Adjust this value so that it appears what size you want. */
}
<ul>
<li>Lorem ipsum dolor sit amet, ei cum offendit partiendo iudicabit. At mei quaestio honestatis, duo dicit affert persecuti ei. Etiam nusquam cu his, nec alterum posidonium philosophia te. Nec an purto iudicabit, no vix quod clita expetendis.</li>
<li>Quem suscipiantur no eos, sed impedit explicari ea, falli inermis comprehensam est in. Vide dicunt ancillae cum te, habeo delenit deserunt mei in. Tale sint ex his, ipsum essent appellantur et cum.</li>
</ul>
font-family
以确保项目符号正确呈现。例如,某些字体将圆形项目符号呈现为正方形。 - Alex Walkerli
的内容包裹在另一个元素中,例如 span
。 然后,给 li
设置更大的 font-size
,并在 span
上设置正常的 font-size
:
li {
font-size: 36px;
}
li span {
font-size: 18px;
}
<ul>
<li><span>Item 1</span></li>
<li><span>Item 2</span></li>
<li><span>Item 3</span></li>
</ul>
根据所需的IE支持级别,您还可以使用:before选择器,并将标记样式设置为content属性。
li {
list-style-type: none;
font-size: small;
}
li:before {
content: '\2022';
font-size: x-large;
}
你可能需要查找想要的项目符号的HTML ASCII并使用转换器来获得CSS十六进制值。
:before
伪元素将在文本流中,而不是分开在左侧,因此如果列表项有两行或更多行,它看起来会很丑。 - YakovL您可以使用::marker CSS伪元素来设置列表的数字或者符号样式。截至2022年1月,Safari只支持颜色和字体大小。
例如:
::marker {
color: red;
font-size: 2rem
}
ul > li::marker {
color: blue;
}
ol > li::marker {
font-size: 1rem
}
<ul>
<li>Step One</li>
<li>Step Two</li>
<li>Step Three</li>
</ul>
<ol>
<li>Wake up</li>
<li>Code</li>
<li>Sleep</li>
</ol>
::before
伪元素重新添加自定义列表符号。ul {
list-style-type: none;
}
li::before {
display: inline-block;
vertical-align: middle;
width: 5px;
height: 5px;
background-color: #000000;
margin-right: 8px;
content: ' '
}
<ul>
<li>first element</li>
<li>second element</li>
</ul>
:before
而非::before
;第二,在dzimney的回答中有相同的问题:伪元素将在文本流中而不是被分离在左侧,因此如果列表项有两行或以上,这会看起来很丑。 - YakovL我猜你是指每个列表项开头的圆点的大小。如果是这样,你可以使用图像来代替它:
list-style-image:url('bigger.gif');
list-style-type:none;
如果您想改变 li
元素的实际大小,那么您可以像平常一样使用 width
和 height
来进行更改。
这是一个Unicode版本。它允许你在CSS的项目列表中插入任何文本符号或表情符号。你只需要知道Unicode的“代码点”值,这是免费提供的...而且现代浏览器本身就内置了成千上万个图标!只需搜索“unicode代码点”,然后将所需的图标粘贴到CSS中即可。
注意:在CSS中选择一个包含一系列Unicode字形的字体!大多数现代字体都支持广泛的字形范围,涵盖了大部分的高位平面Unicode代码点。但也可能会遇到一些不支持的字体。
<style>
#html_list{
position: relative;
margin-left: 1em;
list-style: none;
}
#html_list li::before {
display: inline-block;
content: "\2023";/* <<< ADD YOUR UNICODE ICON NUMBER HERE */
color: #114f66;
font-size: 3rem;
line-height: 0;
padding: 0 .1em 0 0;
margin: 0;
text-align: left;
vertical-align: top;
position: relative;
top: .2em;
left: 0em;
}
#html_list li {
text-align:left;
vertical-align: top;
padding: .2em 0em .2em 0em;
margin: 0;
font-size: 1rem;
}
</style>
<ul id="html_list">
<li><a href="#">Area 1</a></li>
<li><a href="#">Area 2</a></li>
<li><a href="#">Area 3</a></li>
</ul>
::before
伪元素中插入一个新的Unicode项目符号。然后,您可以根据需要调整大小和重新定位它。一旦您将调整大小后的项目符号与列表文本对齐,您可以开始根据需要填充或调整列表文本的大小,而项目符号应该会随之移动。如果您不想在您的 <li>
中使用 <span>
包装内容,您也可以像这样使用 :before
:
ul {
list-style: none;
}
li {
position: relative;
padding-left: 15px;
line-height: 16px;
}
li:before {
content: '\2022';
line-height: 16px; /*match the li line-height for vertical centered bullets*/
position: absolute;
left: 0;
}
li.huge:before {
font-size: 30px;
}
li.small:before {
font-size: 10px;
}
在:before
上调整字体大小,使其符合您的需求。
<ul>
<li class="huge">huge bullet</li>
<li class="small">smaller bullet</li>
<li class="huge">multi line item with custom<br/> sized bullet</li>
<li>normal bullet</li>
</ul>
自2011年以来,事情显然有了一些变化。今天,CSS提供了两种简单且得到良好支持的方法来自定义无序列表中的项目符号。
最近的一种方法是::marker
伪元素。它允许您直接应用样式于任何标记,无论是符号还是数字。请参见Robert Kegel's answer以获取更详细的描述。
另一种方法看起来很简单。您只需将list-style-type
属性设置为带引号的字符串,并选择任何Unicode字符即可。在此示例中,我选择了字符U+25A0
(黑色正方形),它比标准正方形符号要大:
ul {
list-style-type: square;
}
ul.big-bullets {
list-style-type: "■ ";
}
<ul class="big-bullets">
<li>Check out my square bullets!</li>
<li>They are big, and perfectly aligned.</li>
<li>And all it took was one very simple line of CSS.</li>
</ul>
<ul>
<li>They <em>are</em> big bullets.</li>
<li>I'm a little jealous.</li>
</ul>
在list-style-type
属性上设置字符串的能力已经存在多年了,但浏览器支持需要一段时间才能跟上。根据Can I use,现在已经超过92%。
现在,您可能会认为您宁愿应用font-size
而不是深入研究晦涩的Unicode字符,在这种情况下,您可以选择::marker
方法。但请记住,这些项目符号字符仅在与其余文本相同的字体大小一起使用时才能很好地对齐。在我看来,首先选择正确的项目符号字符是正确的方法。如果您想要更精细的控制,当然可以同时使用两种技术。
li
元素中的 'bullet' 部分,而不需要文本内容,对吗? - chrisfrancis27