CSS中伪元素、伪类选择器和字体、文本相关属性
CSS中伪元素、伪类选择器
伪元素选择器
伪元素选择器只能针对CSS中已有的伪元素起作用。
CSS提供的伪元素选择器有如下几个:
- :first-letter:对指定对象的第一个字符起作用。
- :first-line:对指定对象的第一行内容起作用。
- :before:与内容相关的属性结合使用,用于在指定对象内部的前端插入内容。
- :after:与内容相关的属性结合使用,用于在指定对象内部的尾端增加内容。
下面代码示范用法:
<!DOCTYPE html>
<html>
<head><meta http-equiv="Content-Ttpe" content="text/html; charset=utf-8" /><title>:first-letter</title><style type="text/css">span{display:block;}span:first-letter{color:yellow;font-size:20pt}span:first-line{color:#0f0;font-size:25pt}#clern:first-line{color:#f00;font-size:15pt;}section:first-letter{color:#00f;font-size:30pt;font-weight:blod;}/*指定向div元素内部的前端插入content属性对应的内容*/div>p:before{content:'努力奋斗';color:blue;font-size:30pt;background-color:gray;}</style>
</head>
<body><span>ABC<br>ZXC</span><section id="clern">其实我是一个程序员,<br>你是一个设计师,</section><br/><span id="clern">然而我们都是打工的,<br>老板还是一个。</span><div><p>才能活得精彩,</p><p>才能创造价值。</p></div>
</body>
</html>
所示效果如下:
其中关于div中的before和after处理运用到了内容相关的属性:content,content该属性的值可以是字符串,用于向指定元素之前或之后插入内容。此外,content还可使用url(url)格式的值,这种格式的值可用于插入图像。如:
<head><meta http-equiv="Content-Ttpe" content="text/html; charset=utf-8" /><title>插入图片</title><style type="text/css">/*指定向div元素内部的尾端插入content属性对应的内容*/div>div:after{content:url("pic.jpg");}</style>
</head>
伪类选择器
伪类选择器主要用于对已有选择器做进一步的限制,对已有选择器能匹配的元素进一步的过滤。伪类选择器主要分为如下三类:
- 结构性伪类选择器
- UI元素状态伪类选择器
- 其他伪类选择器
1.结构性伪类选择器
结构性伪类选择器指的是根据HTML元素之间的结构关键进行筛选的伪类选择器。结构性伪类选择器主要有以下几个:
- Selector:root:匹配文档的根元素。在HTML中根元素永远是<html…/>元素。
- Selector:first-child:匹配符合Selector选择器,而且必须是其父元素的第一个子节点的元素。
- Selector:last-child:匹配符合Selector选择器,而且必须是其父元素的最后一个子节点的元素。
- Selector:nth-child(n):匹配符合Selector选择器,而且必须是其父元素的第n个子节点的元素。
- Selector:nth-last-child(n):匹配符合Selector选择器,而且必须是其父元素的倒数第n个子节点的元素。
- Selector:only-child:匹配符合Selector选择器,而且必须是其父元素的唯一子节点的元素。
下面代码示范用法:
<!DOCTYPE html>
<html>
<head><meta http-equiv="Content-Ttpe" content="text/html; charset=utf-8" /><title>:first-letter</title><style type="text/css">li:first-child{border:1px soild black;}li:last-child{background-color:#aaa;}li:nth-child(2){color:#888;}li:nth-last-child(2){font-size:20pt;}span:only-child{color:#fff;font-size:25pt;}</style>
</head>
<body><ol><li>一名数学家</li><li>一名化学家</li><li>一名科学家</li><li>一名物理学家</li><li>一名哲学家</li></ol><ul><li id="a">他是一名数学家</li><li id="s">他是一名化学家</li><li id="d">他是一名科学家</li><li id="z">他是一名物理学家</li><li id="x">他是一名哲学家</li><li><span id="c">他是一名哲学家</span></li></ul>
</body>
</html>
效果如下:
此外,对于:nth-child和:nth-last-child两个伪类选择器,它们的功能还支持如下用法。
- Selector:nth-child(odd/even):匹配符合Selector选择器,而且必须是其父元素的第奇数/偶数个子节点的元素。
- Selector:nth-last-child(odd/even):匹配符合Selector选择器,而且必须是其父元素的倒数第奇数/偶数个子节点的元素。
- Selector:nth-child(xn+y):匹配符合Selector选择器,而且必须是其父元素的第xn+y个子节点的元素。
- Selector:nth-last-child(xn+y):匹配符合Selector选择器,而且必须是其父元素的倒数第xn+y个子节点的元素。
2.UI元素状态伪类选择器
UI元素状态选择器主要用于根据UI元素的状态进行筛选。UI元素状态选择器主要有如下几个:
- Selector:link:匹配 Selector选择器且未被访问前的元素(通常只能是超链接)。
- Selector:visited:匹配 Selector选择器且已被访问过的元素(通常只能是超链接)。
- Selector:active:匹配 Selector选择器且处于被用户激活(在鼠标点击与释放之间的事件)状态的元素。
- Selector:hover:匹配 Selector选择器且处于鼠标悬停状态的元素。
- Selector:focus:匹配 Selector选择器且已得到焦点的元素。
- Selector:enabled:匹配 Selector选择器且当前处于可用状态的元素。
- Selector:diabled:匹配 Selector选择器且当前处于不可用状态的元素。
- Selector:read-only:匹配 Selector选择器且处于只读状态的元素。
- Selector:read-write:匹配 Selector选择器且处于读写状态的元素。
- Selector:required:匹配 Selector选择器且具有必填要求的元素。
- Selector:optional:匹配 Selector选择器且无必填要求的元素。
下面代码示范用法:
<!DOCTYPE html>
<html>
<head><meta http-equiv="Content-Ttpe" content="text/html; charset=utf-8" /><title>UI元素状态的伪类选择器</title><style type="text/css">td{border:1px solid black;padding:4px;}tr:hover{background-color:#aaa;}input:active{background-color:blue;}:focus{text-decoration:underline;}:enabled{font-family:"黑体";font-weight:bold;font-size:14pt;}:diabled{font-family:"隶书";font-size:14pt;}:checked{outline:red solid 5px;}:default{outline:#bbb solid 5px;}</style>
</head>
<body><table style="width:400px;border-collapse:collapse"><tr><td>疯狂Java讲义</td><td>109</td></tr><tr><td>轻量级Java实战</td><td>108</td></tr><tr contentEditable="true"><td>疯狂C++讲义</td><td>108</td></tr></table><button disabled>不可用的按钮</button><input type="text" disabled value="不可用的文本框"/><button>可用的按钮</button><input type="text" value="可用的文本框"/>男:<input type="radio" value="male" name="gender"/>女:<input type="radio" value="female" name="gender"/>未知:<input type="radio" checked value="unknown" name="gender"/>
</body>
</html>
效果如下:
3.其他伪类选择器
: target伪类选择器
Selector:target:匹配符合Seletor选择器且必须是命名锚点目标的元素。
:not伪类选择器
Selector1:not(Selector2):匹配符合Seletor1选择器,但不符合Selector2选择器的元素,相当于用Selector1减去Selector2。
下面代码示范用法:
<!DOCTYPE html>
<html>
<head><meta http-equiv="Content-Ttpe" content="text/html; charset=utf-8" /><title>:not</title><style type="text/css">li:not(#z){color:#999;font-weight:bold;}</style>
</head>
<body> <ul><li id="a">他是一名数学家</li><li id="s">他是一名化学家</li><li id="d">他是一名科学家</li><li id="z">他是一名物理学家</li><li id="x">他是一名哲学家</li><li id="c">他是一名哲学家</li></ul>
</body>
</html>
效果如下:
从运行结果来看,浏览器为除了id为z的所有<li…/>元素都设置了字体颜色、粗体字效果。
在脚本中修改显示样式
如果需要在脚本中动态控制页面的显示效果,使用脚本动态设置CSS样式也非常简单,按如下步骤可动态修改目标元素的CSS样式。
- 获取到需要设置CSS样式的目标元素,如可用getElementById()的方法。
- 修改目标元素的CSS样式。常用的方式有两种。
(1)修改行内CSS属性值:使用如“obj.style.属性名=属性值”的JavaScript代码即可。
(2)修改HTML元素的class属性值:使用如“obj.className=class选择器”的JavaScript代码即可。
随机改变页面的背景色
随机改变页面的背景色,只要生产一个随机的6位数,并将该值赋给body元素中的backgroundColor CSS属性即可。
下面代码示范用法:
<!DOCTYPE html>
<html>
<head><meta http-equiv="Content-Ttpe" content="text/html; charset=utf-8" /><title>随机改变页面背景色</title><script type="text/javascript">function changeBg(){//将背景色的值定义成空字符串var bgColor="";//循环6次,生产一个随机的6位数for (var i = 0 ; i < 6 ; i++){bgColor += "" + Math.round(Math.random() * 9);}//将随机生产的背景颜色值赋给页面的背景色document.body.style.backgroundColor="#" + bgColor;}document.onclick = changeBg;</script>
</head>
<body>
</body>
</html>
运行效果是单击页面会随机改变页面的背景色。
动态增加立体效果
立体效果原来是通过为其增加4个边框实现的,其中左、上边框颜色稍浅,下、右颜色稍深。
下面代码示范用法:
<!DOCTYPE html>
<html>
<head><meta http-equiv="Content-Ttpe" content="text/html; charset=utf-8" /><title>随机改变页面背景色</title><script type="text/javascript">function chg(){document.getElementById("up").className="solid";}</script><style type="text/css">.solid{width:160px;padding:6pxtext-align:center;border-right:#222 4px solid;border-top:#ddd 4px solid;border-left:#ddd 4px solid;border-bottom:#222 4px solid;background-color:#ccc;}</style>
</head>
<body><input type="button" onclick='chg()' value="增加立体效果" /><div id="up">有立体效果的层</div>
</body>
</html>
效果如下:
单击页面上的“增加立体效果”按钮,页面会出现如图所示的效果。
字体与文本相关属性
字体相关属性
CSS为控制文本的字体提供了大量属性,主要用于控制文本的字体、颜色、修饰等外观。字体相关属性如下:
- font:这是个复合属性,通常不建议使用该属性。
- color:该属性用于控制字体颜色。
- font-family:设置文字的字体。
- font-size:设置文字的大小。
- font-stretch:用于改变文字横向的拉伸。
- font-style:设置文字的风格,是否采用斜体等。
- font-weight:设置文字是否加粗,该属性的值表示加粗的程度。
- text-decoration:用于控制文字是否有修饰线。
- font-variant:用于设置文字的大写字母的格式。
- text-transform:用于设置文字的大小写。
- line-height:该属性用于设置字体的行高。
- letter-spacing:用于设置字符之间的间隔。
- word-spacing:用于设置单词之间的间隔。
- text-shadow:用于设置文字是否有阴影效果,可添加多个阴影。
代码示范如下:
<!DOCTYPE html>
<html>
<head><meta http-equiv="Content-Ttpe" content="text/html; charset=utf-8" /><title>字体相关属性</title>
</head>
<body>color:#888888:<span style="color:#888888">测试文字</span><br />color:red:<span style="color:red">测试文字</span><br /><span style="font-family:'隶书'">测试文字</span><br /><span style="font-size:20pt">测试文字</span><br /><span style="font-size:xx-large">测试文字</span><br /><span style="font-stretch:narrower">测试文字</span><br /><span style="font-stretch:wider">测试文字</span><br /><span style="font-style:italic">测试文字</span><br /><span style="text-decoration:blink">测试文字</span><br /><span style="text-decoration:underline">测试文字</span><br /><span style="text-decoration:line-through">测试文字</span><br /><span style="font-variant:small-caps">hello</span><br /><span style="text-transform:uppercase">hello</span><br /><span style="text-transform:capitalize">hello</span><br /><span style="line-height:30pt">测试文字</span><br /><span style="letter-spacing:15pt">hello world</span><br /><span style="letter-spacing:5pt">hello world</span><br /><span style="word-spacing:20pt">hello world</span><br /><span style="word-spacing:60pt">hello world</span><br />
</body>
</html>
效果如下:
CSS3支持的颜色表示方法
CSS3中常用的几种颜色表示方法如下:
- 用颜色名表示,如white(白色)、red(红色)等。这种方式简单易用,但能表示的颜色数量有限。
- 用十六进制的颜色值表示,这就是典型的三原色混合原理,例如#123456,其中前两位表示红光的值,中间两位表示绿光的值,后两位表示蓝光的值。
- 用rgb(r,g,b)函数表示,也是运用三原色混合原理。顺序也是红绿蓝的值。
- 用rgba(r,g,b,a)函数表示,还是运用三原色混合原理。只是多了一个a参数,用于指定该颜色的透明度,a参数可以是0~1之间的任意数。
文本相关属性
文本相关属性用于控制整个段、整个<div…/>元素内文本的显示效果。相关属性如下:
- text-indent:用于设置段落文本的缩进,默认值为0。被另一个元素断开的元素不能应用本属性。
- text-overflow:用于控制溢出文本的处理方法。该属性支持两个属性值,clip和ellipsis。
- vertical-align:用于设置目标元素里内容的垂直对齐方式。
- text-align:用于设置目标元素中文本的水平对齐方式。
- direction:用于设置文本流入的方向,合法值有ltr(从左向右)和rtl(从右向左)。
- white-space:用于设置目标元素对文本内容中空白的处理方式。
- word-break:用于设置目标元素中文本内容的换行方式。
- word-wrap:用于设置目标元素中文本内容的换行方式。
其中text-overflow属性的代码示例如下:
<!DOCTYPE html>
<html>
<head><meta http-equiv="Content-Ttpe" content="text/html; charset=utf-8" /><title>文本相关属性</title><style>div{border:1px solid #000000;height:30px;width:200px;}</style>
</head>
<body><div style="overflow:hidden;white-space:nowrap;text-overflow:clip;">测试文字测试文字测试文字测试文字测试文字测试文字</div><div style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;">测试文字测试文字测试文字测试文字测试文字测试文字</div>
</body>
</html
效果如下:
主要介绍CSS中字体和文本相关属性,通过这些属性可以控制字体颜色、字体大小、字体样式、字体阴影、文本对齐方式、文本缩进、文本溢出显示方式等。
CSS中伪元素、伪类选择器和字体、文本相关属性相关推荐
- CSS初识(三):CSS字体文本相关属性
属性 CSS属性有很多,不过常用的并不多,大概30个左右.请注意区别CSS属性和HTML属性. 按照功能大致分为以下几类: 字体有关属性 font-size: 设置字体大小,单位是px(像素):一些不 ...
- css中什么是伪类选择器?伪类选择器的简要介绍
本章给大家带来css中什么是伪类选择器?伪类选择器的简要介绍.让大家可以了解在css中伪类选择器的作用,css伪类选择器有哪些分类等知识.有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. ...
- css4个伪元素,CSS_CSS3中的content属性使用示例,CSS中主要的伪元素有四个:befo - phpStudy...
CSS3中的content属性使用示例 CSS中主要的伪元素有四个:before/after/first-letter/first-line,在before/after伪元素选择器中,有一个conte ...
- 鼠标的移入、移出事件与css中的hover伪类
开发工具与关键技术:html+css+js 作者: 李伙 撰写时间: 2019年1月19日 鼠标的移入.移出事件是一个模仿悬停事件(鼠标移入到一个对象上以及移出这个对象)的方法,当鼠标移动到一个匹配的 ...
- CSS中常用的几种选择器是哪几种呢?
CSS中常用的选择器: (一)基本选择器(二)层次选择器(三)动态伪类选择器(四)目标伪类选择器 (五)ui状态伪类选择器(六)结构伪类选择器(七)属性选择器(八)伪元素 (一)基本选择器 ...
- CSS中的nth-child和nth-of-type选择器
CSS中的nth-child和nth-type-of选择器 先写一个例子 <head><style>*{margin: 0px;padding: 0px;}.item{vert ...
- 5种css隐藏元素的方法_在CSS中隐藏元素的10种方法
5种css隐藏元素的方法 There are multiple ways to hide an element in CSS, but they differ in the way they affe ...
- 在 CSS 中隐藏元素的 10 种方法
在CSS中很多隐藏元素的方法,但这些方法的可访问性.布局.动画.性能和事件处理的方式有所不同. 动画: 一些CSS隐藏元素的方法一般是全有或者全无,元素要么是完全可见,要么是完全不可见,并且没有中间状 ...
- 怎样使用css让矩形出现圆角,CSS中设置元素的圆角矩形
圆角矩形介绍 在CSS中通过border-radius属性可以实现元素的圆角矩形. border-radius属性值一共有4个,左上.右上.左下.右下. border-radius属性值规则如下:第一 ...
最新文章
- 【PDF下载】无意中发现的另一本 统计学入门好书
- c++ 调用labview_LabVIEW面向对象编程_初窥门径(5):开发方式漫谈
- 第23讲:利用资源,学会用打码平台处理验证码
- CF1100F Ivan and Burgers(线性基)
- java 模板方法设计模式_Java中的模板方法设计模式
- java 职责链模式_Java中的责任链模式
- react学习(46)----react渲染组件
- 一些关于angular的总结
- 条款23: 必须返回一个对象时不要试图返回一个引用
- 用vmware workstation做双机集群的详细过程(三)
- 解密navicate保存的数据库连接密码
- 运放虚短虚断的成立条件
- Matlab提示Ill-conditioned covariance created at iteration
- TCP三次握手详解-深入浅出(有图实例演示)
- clientX,offsetX,pageX,screenX的异同以Chrome浏览器测试
- 计算机网络——IP地址总述
- java 调页储存_java调用存储过程
- iphone同步android短信,如何从iPhone导入短信到Android手机?
- 快速搭建小程序,实现线上引流获客
- 计算机原理考研题库,计算机组成原理考研题库_圣考资料网
热门文章
- window svn报错:database disk image is malformed
- 华为手机哪款使用了鸿蒙操作系统,华为正式发布鸿蒙手机操作系统 哪些手机可以使用...
- 调用executeUpdate,屏蔽Could not find index for XXX信息
- Java中Final修饰对象
- Android 系统自带时间选择控件
- 黑帽SEO之暗链方法大全,那种最好,不易被蜘蛛搜索引擎察觉
- Python格式化输出10进制和16进制
- html扇形展开,html5扇形写法canvas
- Winrar发现损坏的压缩文件头
- Symbian S60开发环境搭建