first-letter的一个小妙用

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>

这个时候就可以使用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>

这下,前导符就和文字保持一定距离了,而且能控制的样式也更多一点。
不过前导符后面那个顿号就控制不到样式了,但我想可不可以设置背景图来取代呢?
简单测试却发现,控制first-letter伪类的背景,与控制list-style-image一样让人琢磨不透,遂弃之。

另外,各个浏览器对待前导符旁边的符号处理方式也不一样,因为没有安装Safari,所以没有测试它:


代码:


渲染结果:

IE8和FF3和Opera表现一致,Chrome只对左侧的符号进行处理,IE6、7就只处理了第一个字符。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值