OL定义有序列表的时候,除非指定list-style-position:inside;,否则文字和前导符是有缩进的。
但有的时候,OL定义的列表类型有限制,比如不能定义汉字的“一、二、三”,我们只好手动来输入这些字符,但这下文字和字符连在一起。
运行代码框
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>first-letter</title>
<style type="text/css">
body{font-size:12px;width:600px;margin:2em auto;}
</style>
</head>
<body>
<ol>
<li>最初被称为盒模型酸试验,是一个用于测试浏览器的网页。它在1998年10月开发,成为了衡量早期浏览器兼容性的重要准线,特别是浏览器对层叠样式表1.0的支持情况。就像用酸试验来迅速并直观的衡量一块金属的质量好坏,网页酸试验的目标是提供一个可以清楚地表明浏览器的是否遵守 Web 标准的方法。</li>
<li>该版本针对支持HTML、CSS 2.0及PNG图像[1]标准的综合测试,由网页标准计划小组(Web Standards Project)设计。</li>
<li>于 2008年3月3日正式发布,其测试焦点集中在ECMAScript、DOM Level 3、Media Queries和data: URL[3]。以浏览器打开此测试网页后,页面会不断加载功能[4]并根据测试情况给予分数,满分为100分</li>
</ol>
<hr />
<ol style="list-style:none;">
<li>一、最初被称为盒模型酸试验,是一个用于测试浏览器的网页。它在1998年10月开发,成为了衡量早期浏览器兼容性的重要准线,特别是浏览器对层叠样式表1.0的支持情况。就像用酸试验来迅速并直观的衡量一块金属的质量好坏,网页酸试验的目标是提供一个可以清楚地表明浏览器的是否遵守 Web 标准的方法。</li>
<li>二、该版本针对支持HTML、CSS 2.0及PNG图像[1]标准的综合测试,由网页标准计划小组(Web Standards Project)设计。</li>
<li>三、2008年3月3日正式发布,其测试焦点集中在ECMAScript、DOM Level 3、Media Queries和data: URL[3]。以浏览器打开此测试网页后,页面会不断加载功能[4]并根据测试情况给予分数,满分为100分</li>
</ol>
</body>
</html>
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]
这个时候就可以使用first-letter这个伪类来帮忙了:
运行代码框
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>first-letter</title>
<style type="text/css">
body{font-size:12px;width:600px;margin:2em auto;}
ol.list { list-style:none; }
ol.list li:first-letter { margin-left:-2em;color:blue;font-weight:bold;}
</style>
</head>
<body>
<ol>
<li>最初被称为盒模型酸试验,是一个用于测试浏览器的网页。它在1998年10月开发,成为了衡量早期浏览器兼容性的重要准线,特别是浏览器对层叠样式表1.0的支持情况。就像用酸试验来迅速并直观的衡量一块金属的质量好坏,网页酸试验的目标是提供一个可以清楚地表明浏览器的是否遵守 Web 标准的方法。</li>
<li>该版本针对支持HTML、CSS 2.0及PNG图像[1]标准的综合测试,由网页标准计划小组(Web Standards Project)设计。</li>
<li>于 2008年3月3日正式发布,其测试焦点集中在ECMAScript、DOM Level 3、Media Queries和data: URL[3]。以浏览器打开此测试网页后,页面会不断加载功能[4]并根据测试情况给予分数,满分为100分</li>
</ol>
<hr />
<ol class="list">
<li>一、最初被称为盒模型酸试验,是一个用于测试浏览器的网页。它在1998年10月开发,成为了衡量早期浏览器兼容性的重要准线,特别是浏览器对层叠样式表1.0的支持情况。就像用酸试验来迅速并直观的衡量一块金属的质量好坏,网页酸试验的目标是提供一个可以清楚地表明浏览器的是否遵守 Web 标准的方法。</li>
<li>二、该版本针对支持HTML、CSS 2.0及PNG图像[1]标准的综合测试,由网页标准计划小组(Web Standards Project)设计。</li>
<li>三、2008年3月3日正式发布,其测试焦点集中在ECMAScript、DOM Level 3、Media Queries和data: URL[3]。以浏览器打开此测试网页后,页面会不断加载功能[4]并根据测试情况给予分数,满分为100分</li>
</ol>
<hr />
<ol class="list">
<li>壹、最初被称为盒模型酸试验,是一个用于测试浏览器的网页。它在1998年10月开发,成为了衡量早期浏览器兼容性的重要准线,特别是浏览器对层叠样式表1.0的支持情况。就像用酸试验来迅速并直观的衡量一块金属的质量好坏,网页酸试验的目标是提供一个可以清楚地表明浏览器的是否遵守 Web 标准的方法。</li>
<li>贰、该版本针对支持HTML、CSS 2.0及PNG图像[1]标准的综合测试,由网页标准计划小组(Web Standards Project)设计。</li>
<li>叁、2008年3月3日正式发布,其测试焦点集中在ECMAScript、DOM Level 3、Media Queries和data: URL[3]。以浏览器打开此测试网页后,页面会不断加载功能[4]并根据测试情况给予分数,满分为100分</li>
</ol>
</body>
</html>
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]
这下,前导符就和文字保持一定距离了,而且能控制的样式也更多一点。
不过前导符后面那个顿号就控制不到样式了,但我想可不可以设置背景图来取代呢?
简单测试却发现,控制first-letter伪类的背景,与控制list-style-image一样让人琢磨不透,遂弃之。
另外,各个浏览器对待前导符旁边的符号处理方式也不一样,因为没有安装Safari,所以没有测试它:
代码:
渲染结果:
IE8和FF3和Opera表现一致,Chrome只对左侧的符号进行处理,IE6、7就只处理了第一个字符。