经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » HTML/CSS » HTML5 » 查看文章
前端学习日记 (三)
来源:cnblogs  作者:Fantac  时间:2019/11/8 16:59:24  对本文有异议

CSS的引入

在早期,如果要去定义一个H1的标题的颜色、字体、大小和其他的显示特征,就需要用到HTML中的font或其他样式的指令,H1只是一个结构指令所以光有它是不够的。因此如果有多个标签要去进行处理,就会造成样式的重复,后期维护的困难。

那CSS的出现就解决了这一类的问题,CSS(Cascading Style Sheets),即层叠样式表、阶层样式表,它是一种用来为结构化文档(如HTML文档或XML应用)添加样式(字体、间距和颜色等)的计算机语言。

 

CSS的基本引入

通过HTML文件中的link标签引入CSS文件

1.通过link引入CSS文件

HTML程式码:

  1. <!DOCTYPE html>
  2. <html>     
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>网页示例</title>
  6. <link rel="stylesheet" href="webCSS.css">
  7. </head>
  8. <body>
  9. <p>Hello World!</p>
  10. </body>
  11. </html>

CSS程式码:

  1. p{
  2. color:red;
  3. }

2.使用style标签

HTML程式码:

  1. <!DOCTYPE html>
  2. <html>     
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>网页示例</title>
  6. <style>
  7. p{
  8. color:red;
  9. }
  10. </style>
  11. </head>
  12. <body>
  13. <p>Hello World!</p>
  14. </body>
  15. </html>

3.直接在标签中更改样式

HTML程式码:

  1. <!DOCTYPE html>
  2. <html>     
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>网页示例</title>
  6. </head>
  7. <body>
  8. <p style="color:red">Hello World!</p>
  9. </body>
  10. </html>

 

CSS结构

 

 

选择器相遇要更改标签样式的前提条件

 

CSS基本选择器

选择器查找标签的方式 

1.标签选择器

这种选择器如果对于同一种类的标签会一起修改相同的样式,因此对于通用的样式时候可以选择标签选择器

HTML程式码:

  1. <!DOCTYPE html>
  2. <html>     
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>网页示例</title>
  6. <link rel="stylesheet" href="webCSS.css">
  7. </head>
  8. <body>
  9. <h1>网页设计</h1>
  10. </body>
  11. </html>

CSS程式码:

  1. /*CSS程式码*/
  2. h1{
  3. color:blue;font-size:48px;
  4. }

网页效果:

2.ID选择器

选择器所表现出的样式具有独一无二的效果,ID选择器优先级比标签选择器高

HTML程式码:

  1. <!DOCTYPE html>
  2. <html>     
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>网页示例</title>
  6. <link rel="stylesheet" href="webCSS.css">
  7. </head>
  8. <body>
  9. <h1 id="i1">网页设计</h1>
  10. </body>
  11. </html>

CSS程式码:

  1. /*CSS程式码*/
  2. #i1{
  3. color:orange;font-size:60px;
  4. }

网页效果:

3.类选择器

这一类标签需要用同一种样式的时候需要用到类选择器

HTML程式码:

  1. <!DOCTYPE html>
  2. <html>     
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>网页示例</title>
  6. <link rel="stylesheet" href="webCSS.css">
  7. </head>
  8. <body>
  9. <p class="c1">水蜜桃</p>
  10. <p class="c1">猕猴桃</p>
  11. <p class="c1">苹果</p>
  12. <p class="c1">香蕉</p>
  13. </body>
  14. </html>

CSS程式码:

  1. /*CSS程式码*/
  2. .c1{
  3. color:pink;font-size:60px;
  4. }

网页效果:

4.通用选择器

默认使用这一种样式

  1. /*CSS程式码*/
  2. *{
  3. color:black;

 

CSS组合选择器

1.子代选择器

HTML程式码:

  1. <!DOCTYPE html>
  2. <html>     
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>网页示例</title>
  6. <link rel="stylesheet" href="webCSS.css">
  7. </head>
  8. <body>
  9. <div id="d1">
  10. <p>我是嵌套在div中的p标签</p>
  11. <span>我是嵌套在div中的span标签</span>
  12. <div>
  13. <p>我是嵌套在div中的div中的p标签</p>
  14. <span>我是嵌套在div中的div中的span标签</span>
  15. </div>
  16. </div>
  17. </body>
  18. </html>

CSS程式码:

  1. /*CSS程式码*/
  2. #d1>p{
  3. color:blue;font-size:20;
  4. }

网页效果:

2.兄弟选择器

之后标签都会统一更改样式

HTML程式码:

  1. <!DOCTYPE html>
  2. <html>     
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>网页示例</title>
  6. <link rel="stylesheet" href="webCSS.css">
  7. </head>
  8. <body>
  9. <p>第一段</p>
  10. <div>div标签</div>
  11. <p>第二段</p>
  12. <p>第三段</p>
  13. <p>第四段</p>
  14. <p>第五段</p>
  15. <hr>
  16. <p>第六段</p>
  17. </body>
  18. </html>

CSS程式码:

  1. /*CSS程式码*/
  2. div~p{
  3. color:green;font-size:20;
  4. }

网页效果:

3.相邻兄弟选择器

这种方式它只会往下找相邻的标签

HTML程式码:

  1. <!DOCTYPE html>
  2. <html>     
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>网页示例</title>
  6. <link rel="stylesheet" href="webCSS.css">
  7. </head>
  8. <body>
  9. <p>第一段</p>
  10. <div>div标签</div>
  11. <p>第二段</p>
  12. <p>第三段</p>
  13. </body>
  14. </html>

CSS程式码:

  1. /*CSS程式码*/
  2. div+p{
  3. color:blue;font-size:20;
  4. }

网页效果:

4.后代选择器

HTML程式码:

  1. <!DOCTYPE html>
  2. <html>     
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>网页示例</title>
  6. <link rel="stylesheet" href="webCSS.css">
  7. </head>
  8. <body>
  9. <div id="d1">
  10. <p>我是嵌套在div中的p标签</p>
  11. <span>我是嵌套在div中的span标签</span>
  12. <div>
  13. <p>我是嵌套在div中的div中的p标签</p>
  14. <span>我是嵌套在div中的div中的span标签</span>
  15. </div>
  16. </div>
  17. </body>
  18. </html>

CSS程式码:

这里对于ID为d1的标签的后代只要是p标签都会用一样的CSS样式

  1. /*CSS程式码*/
  2. #d1 p{
  3. color:red;font-size:20;
  4. }

网页效果:

 

css属性选择器

可以给一个标签去自定义一个属性,通过这个属性来改变这一类或这一个标签的样式

HTML程式码: 

  1. <!DOCTYPE html>
  2. <html>     
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>网页示例</title>
  6. <link rel="stylesheet" href="webCSS.css">
  7. </head>
  8. <body>
  9. <p attribute>Hello CSS!</p>
  10. <p attribute="abc">Hello CSS!-abc</p>
  11. <p attribute="abc123">Hello CSS!-abc123</p>
  12. <p attribute="123abc">Hello CSS!-123abc</p>
  13. <p attribute="abcabcabc">Hello CSS!-abcabcabc</p>
  14. <p attribute=" abc ">Hello CSS!- abc </p>
  15. <p attribute="xsdda">Hello CSS!-xsdda</p>
  16. </body>
  17. </html>

1.查找标签元素里有"attribute"的属性

CSS代码:

  1. /*CSS程式码*/
  2. [attribute]{
  3. color:blue;
  4. }

网页效果:

2.查找属性是"abc"的标签

CSS代码:

  1. /*CSS程式码*/
  2. [attribute="abc"]{
  3. color:blue;
  4. }

网页效果:

3.查找属性使用空白分开的字串中其中是“abc”

CSS代码:

  1. /*CSS程式码*/
  2. [attribute~="abc"]{
  3. color:blue;
  4. }

网页效果:

4.查找属性是以"abc"开头的元素

CSS代码:

  1. /*CSS程式码*/
  2. [attribute^="abc"]{
  3. color:blue;
  4. }

网页效果:

5.查找属性是以"abc"结尾的元素

CSS代码:

  1. /*CSS程式码*/
  2. [attribute$="abc"]{
  3. color:blue;
  4. }

网页效果:

6.查找属性至少出现过一次"abc"

CSS代码:

  1. /*CSS程式码*/
  2. [attribute*="abc"]{
  3. color:blue;
  4. }

网页效果:

 

分组和嵌套

当有不同的标签样式有重复的时候可以用到分组

HTML程式码:

  1. <!DOCTYPE html>
  2. <html>     
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>分组和嵌套示例</title>
  6. <link rel="stylesheet" href="webCSS.css">
  7. </head>
  8. <body>
  9. <div id="d1">这是一个div标签</div>
  10. <p>这是一个p标签</p>
  11. </body>
  12. </html>

CSS程式码:

  1. /*CSS程式码*/
  2. #d1,
  3. p{
  4. color:gold
  5. }

网页效果:

 

把多种选择器混合起来使用就是嵌套

HTML程式码:

  1. <!DOCTYPE html>
  2. <html>     
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>分组和嵌套示例</title>
  6. <link rel="stylesheet" href="webCSS.css">
  7. </head>
  8. <body>
  9. <div class="c1">
  10. <p>1</p>
  11. <p>2</p>
  12. <p>3</p>
  13. </div>
  14. </body>
  15. </html>

CSS程式码:

  1. /*CSS程式码*/
  2. .c1 p{
  3. color:red
  4. }

网页效果:

像上面的组合选择器也都是有用到嵌套

 

CSS选择器的优先级

样式文件优先级:选择器都一样的情况下,谁靠近标签谁就生效,例一:

HTML程式码:

  1. <!DOCTYPE html>
  2. <html>     
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>选择器的优先级</title>
  6. <link rel="stylesheet" href="webCSS.css">
  7. <link rel="stylesheet" href="webCSS2.css">
  8. </head>
  9. <body>
  10. <div id="d1">我是一个div标签</div>
  11. <p>我是一个p标签</p>
  12. </body>
  13. </html>

第一个CSS档程式码:

  1. /*CSS程式码*/
  2. #d1,
  3. p{
  4. color:red;
  5. }

第二个CSS档程式码:

  1. /*CSS程式码*/
  2. #d1,
  3. p{
  4. color:gold;
  5. }

网页效果:

那如果把p标签中语句稍加改动

  1. <p style="color:blue">我是一个p标签</p>

那这里的p标签就会变为蓝色,因此像这种内联样式(直接在标签里面写style)它的优先级最高

例二,HTML程式码:

  1. <!DOCTYPE html>
  2. <html>     
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>选择器的优先级</title>
  6. <link rel="stylesheet" href="webCSS.css">
  7. <link rel="stylesheet" href="webCSS2.css">
  8. </head>
  9. <body>
  10. <div id="d1">我是一个div标签</div>
  11. <p id="p1">我是一个p标签</p>
  12. </body>
  13. </html>

第一个CSS档程式码:

  1. /*CSS程式码*/
  2. /*权重值为100 + 1*/
    #d1,
  3. p{
  4. color:red;
  5. }
  6. /*权重值为100*/
  7. #p1{
  8. color:deeppink;
  9. }

第二个CSS档程式码:

  1. /*CSS程式码*/
    /*权重100 + 1*/
    #d1,
  2. p{
  3. color:gold;
  4. }

网页效果:

因为ID选择器的权重比元素选择器的权重更高所以最后的颜色是deepink,但是权重计算永不进位,比如说写了十个类选择器加起来就是100,但是按照规则它还是没有ID选择器来得大

另外如果想要让一种样式强制生效就可以使用!important(不推荐使用),会导致后期维护麻烦

  1. /*CSS程式码*/
  2. #d1,
  3. p{
  4. color:blue!important;
  5. }

 

原文链接:http://www.cnblogs.com/Fantac/p/11817333.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号