前端之HTML、CSS(四)

  CSS

  CSS三大特性

  层叠性:多种样式的叠加,一个属性通过两个选择器设置在同一个元素上,后一个样式会把前一个样式层叠(覆盖)。层叠性的两种情况:第一种样式冲突时,后样式覆盖前样式;第二种样式不冲突时,前后样式互补共同作用同一元素。(冲突:样式属性一样)

 <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>层叠性-测试</title>
<style type="text/css">
p {
color: red;
font-size: 20px;
}
p {
color: blue;
}
</style>
</head>
<body>
<p>层叠性</p>
</body>
</html>

  继承性:HTML“晚辈”标签会继承“长辈”标签的某些样式属性。

 <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>继承性-测试</title>
<style type="text/css">
div {
color: red;
}
</style>
</head>
<body>
<div>
<p>继<span>承</span>性</p>
<p><a href="#">继承性</a></p>
</div>
</body>
</html>

  注意:不是所有属性都可以继承,一般以text-、font-、line-开头的属性以及color属性可以继承,某些标签也同样不会继承属性。

  优先级:CSS三种写入方式:行内样式,内部样式表、外部样式表的优先级关系:行内样式>内部样式表>外部样式表,即一个HTML文档中同时存在三种CSS样式写入,首选行内样式表加载。CSS选择器的三种基本类型:ID选择器、类选择器、标签选择器的优先级关系:ID选择器>类选择器>标签选择器,即三种选择器为同一元素标签设置同一种样式属性,首选ID选择器设置的样式属性。设定ID选择器权值为100,类选择器(伪类选择器)权值为10,标签选择器权值为1,复合选择器中使用的基本选择器组合之间使用加法获取总的权值,权值越高,样式属性选择越优先。如.nav p { }权值为10 + 1 = 11。此外,通配符选择器* { }和继承权值为0,权值相同按照层叠性加载,

 <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>优先级-测试</title>
<style type="text/css">
#pid {
color: blue; /*ID选择器权值为100*/
}
.priority {
color: green; /*类选择器权值为10*/
}
p {
color: red; /*标签选择器权值为1*/
}
</style>
</head>
<body>
<p class="priority", id="pid">优先级</p>
</body>
</html>
 <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>优先级-测试</title>
<style type="text/css">
.complement p {
color: green; /*权值为10 + 1 = 11*/
}
div p {
color: red; /*权值为1 + 1 = 2*/
}
</style>
</head>
<body>
<div class="complement">
<p>复合选择器权值测试</p>
</div>
</body>
</html>

  注意:可以在样式属性的属性值后追加!important为某一类型选择器增加权值,增加值为+∞,即追加!impotant的选择器一定优先加载。

 <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>优先级-测试</title>
<style type="text/css">
#pid {
color: blue; /*ID选择器权值为100*/
}
.priority {
color: green; /*类选择器权值为10*/
}
p {
color: red!important; /*标签选择器权值为1*/
}
</style>
</head>
<body>
<p class="priority", id="pid">优先级</p>
</body>
</html>

  注意:继承权值为0

 <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>优先级-测试</title>
<style type="text/css">
.complement {
color: green; /*权值为10*/
}
p {
color: red; /*权值为1*/
}
</style>
</head>
<body>
<div class="complement">
<!-- 父标签权值为10,子标签权值为1,然而继承权值为0,故字体颜色为红色 -->
<p>复合选择器权值测试</p>
</div>
</body>
</html>

  权重练习测试

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<meta name="keywords" content="关键词1,关键词2,关键词3" />
<meta name="description" content="对网站的描述" />
<title>第1题</title>
<style type="text/css">
#father #son{
color:blue;
}
#father p.c2{
color:black;
}
div.c1 p.c2{
color:red;
}
#father{
color:green !important; /* 继承的权重为0 */
}
</style>
</head>
<body>
<div id="father" class="c1">
<p id="son" class="c2">
试问这行字体是什么颜色的?
</p>
</div>
</body>
</html> <!-- 答案:blue --> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<meta name="keywords" content="关键词1,关键词2,关键词3" />
<meta name="description" content="对网站的描述" />
<title>第2题</title>
<style type="text/css">
#father{
color:red;/* 继承的权重为0 */
}
p{
color:blue;
}
</style>
</head>
<body>
<div id="father">
<p>试问这行字体是什么颜色的?</p>
</div>
</body>
</html> <!-- 答案:blue --> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<meta name="keywords" content="关键词1,关键词2,关键词3" />
<meta name="description" content="对网站的描述" />
<title>第3题</title>
<style type="text/css">
div p{
color:red;
}
#father{
color:red;
}
p.c2{
color:blue;
}
</style>
</head>
<body>
<div id="father" class="c1">
<p class="c2">
试问这行字体是什么颜色的?
</p>
</div>
</body>
</html> <!-- 答案:blue --> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<meta name="keywords" content="关键词1,关键词2,关键词3" />
<meta name="description" content="对网站的描述" />
<title>第4题</title>
<style type="text/css">
div div{
color:blue;
}
div{
color:red;
}
</style>
</head>
<body>
<div>
<div>
<div>
试问这行字体是什么颜色的?
</div>
</div>
</div>
</body>
</html> <!-- 答案:blue --> <!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" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>第5题</title>
<style type="text/css">
div div div div div div div div div div div div{
color:red;
}
.me{
color:blue;
}
</style>
</head>
<body>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div class="me">试问这行文字是什么颜色的</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html> <!-- 答案:blue --> <!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" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>第6题</title>
<style type="text/css">
.c1 .c2 div{
color: blue;
}
div #box3{
color:green;
}
#box1 div{
color:yellow;
}
</style>
</head>
<body>
<div id="box1" class="c1">
<div id="box2" class="c2">
<div id="box3" class="c3">
文字
</div>
</div>
</div>
</body>
</html> <!-- 答案:yellow -->

最新文章

  1. easyui-combobox实现省-市-区县级联菜单
  2. python tornado websocket 实时日志展示
  3. Swift开发第二篇——extension及fatalError
  4. C#调用C++ DLL类方法
  5. 字符串匹配(KMP算法)
  6. DOM笔记(六):怎么进行JQuery扩展?
  7. 如何在svn系统中使用git
  8. java 自定义注解以及获得注解的值
  9. Python -- 大小写转换
  10. 走进BFC
  11. 老男孩Python全栈开发(92天全)视频教程 自学笔记02
  12. Mysql Order By 字符串排序,mysql 字符串order by
  13. PHPstudy端口占用的问题
  14. 什么是kibana?
  15. 常用MarkDown标记
  16. Mac mysql 解决中文乱码
  17. 终端多窗口分屏Terminator
  18. 【C#】往按钮事件中传递自定义参数
  19. oAuth2.0理解
  20. 洛谷P1558 色板游戏

热门文章

  1. 复习扩展方法 涉及委托,这里我使用自定义委托类型 public delegate bb MyFunc&lt;in T,out bb&gt; (T arg)
  2. python核心编程第5章课后题答案
  3. 第17章-Spring消息
  4. 编写高质量代码改善C#程序的157个建议——建议57:实现ISerializable的子类型应负责父类的序列化
  5. 编写高质量代码改善C#程序的157个建议——建议4: TryParse比Parse好
  6. Log--日志变大原因总结
  7. Vue 父组件向子组件传值,传方法,传父组件整体
  8. My97DatePicker常用日期格式
  9. Regex 常用的正则表达式
  10. MySQL事务在MGR中的漫游记—路线图