CSS概述
参考课程链接:https://www.icourse163.org/course/BFU-1003382003
css: Cascading Style Sheets 层叠样式表
CSS样式
HTML: 网页的内容。
CSS:内容的样式。
内容和样式分离,便于修改样式。
相同的html,不同的css,不同的显示效果。
CSS语法
上面这个是标签选择器。
需要实现的效果:
实现:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <p>天使投资指早期投资,尤其指个人早期投资。 </p> <p> VC Venture Capital ,所谓风险投资、创业投资,是相对靠 前的非公开市场股权投资 </p> <p> PE Private Equity ,所谓私募资本、非公开市场资本,既是 私募股权投资的统称,又特指相对靠后的股权投资。 </p> </body> <style> p{ color: blue; font-weight: bold;//字体粗细 font-size: 12px; } </style> </html>
复制
注意:选择器中最后一条可以没有分号,但是为了以后修改方便,一般也加上分号。
为了使阅读更加方便,选择器中的每行代码应该写在一个新的行里面。
CSS的添加方式
行内
在行内,直接以标签的形式体现
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>css的添加方式</title> </head> <body> <!--行内--> <p style="color: red"> 天使投资指早期投资,尤其指个人早期投资。 </p> </body> </html>
复制
内嵌样式
可以写在head标签对里面,也可以跟在body标签对后面和标签对同级。
内嵌即和html在同一个文件里,样式集中在标签对中。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>css的添加方式</title> <style type="text/css"> p{ color: yellow; } </style> </head> <body> <!--行内--> <p > 天使投资指早期投资,尤其指个人早期投资。 </p> </body> </html>
复制
注意:
内嵌的css的作用范围只在当前html起作用,即使有公共 CSS 代码,也是每个页面都要定义的。
适合文件很少,css代码也不多的情况。
如果一个网站有很多页面,每个文件都会变大,后期维护难度也大。
单独文件
页面结构HTML代码与样式CSS代码的完全分离,维护方便。
如果需要改变网站风格,只需要修改公共CSS文件。
可以在同一个HTML文档,引用多个CSS文件。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>css的添加方式</title> <!--link标签引入外部单文件样式表--> <link rel="stylesheet" href="style.css"/> </head> <body> <!--行内--> <p> 天使投资指早期投资,尤其指个人早期投资。 </p> </body> </html>
复制
优先级
行内样式>内嵌样式>链接样式>浏览器默认样式 即就近原则
多重样式,可以覆盖
ps: pt是相对单位,px是绝对单位。
内嵌样式:
h3{ text-align:right; font-size:20pt; }
复制
行内样式:
<h3 style="font-size:15pt"> </h3>
复制
这个h3最终的样式
h3{ font-size:15pt; text-align:right;/*文本对其方式*/ color:red; }
复制
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>优先级测试</title> <link href="priority.css" rel="stylesheet"> <style type="text/css"> h3{ text-align:right; font-size:20pt; } </style> </head> <body> <h3 style="font-size: 15pt">今天是个好日子</h3> </body> </html>
复制
外部样式:priority.css
h3{ color:red; text-align:left; font-size:8pt; }
复制
外部的css,被引入会被内嵌的一起被整合,后面的样式会覆盖前面的样式。
CSS选择器
优先级:内联(行内) > ID选择器 > 类选择器 > 标签选择器
标签
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>标签选择器</title> </head> <body> <h1>标题</h1> <hr> <p>正文的段落</p> 版权所有 </body> <style> body{ background-color: #ccc; text-align: center; font-size: 12px; } h1{ font-size: 25px; } p{ color: red; font-size: 16px; } hr{ width: 200px; } </style> </html>
复制
嵌套 p span
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>嵌套选择器</title> </head> <body> <p><span>天使投资</span>是投资方式的一种</p> </body> <style> p span{ color: red; } </style> </html>
复制
类别 .
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>类选择器</title> </head> <body> <p class="one">类别1</p> <p class="one">类别1</p> <p class="two">类别2</p> <p class="two">类别2</p> <p>普通段落中的文字</p> </body> <style type="text/css"> .one{ font-size: 18px; } .two{ font-size: 24px; } p{ font-size: 12px; } </style> </html>
复制
集体 p,h1
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>集体选择器</title> </head> <body> <h1>欢迎访问论坛</h1> <p>欢迎访问论坛</p> </body> <style> h1,p{ text-align: center; } </style> </html>
复制
id
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>id选择器</title> </head> <body> <p id="one">文字1</p> <p id="two">文字2</p> </body> <style> /* <!--id具有唯一性--> */ #one{ font-size: 12px; } #two{ font-size: 24px; } </style> </html>
复制
全局 *
全局选择器,所有的html内容都适用。
标签选择器优先于全局选择器。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>全局选择器</title> </head> <body> <h1>欢迎访问论坛</h1> <p>欢迎访问论坛</p> <h2>欢迎访问论坛</h2> </body> <style> * { text-align:center; } h1{ text-align: left; } </style> </html>
复制
注:多个class选择器混用,用空格分开
<div class="one yellow left">……</div>
id和class混用
<div id="my" class="one yellow left" >
id选择器不可以多个同时使用
伪类选择器
CSS样式(1) 文本
目录:
- 单位与颜色
- text
- font
eg:
p{ font-size:12px; color:blue; font-weight:bold; }
复制
单位
颜色
文本
属性 | 描述 | 取值 |
---|---|---|
color | 文本颜色 | #000000 rgb(x,y,z) |
letter-spacing | 字符间距 | 2px、em、cm、pt(测测em单位可不可以,答案是可以) |
line-height | 行高 | 14px 1.5em 120% |
text-align | 对齐 | center left right justify |
text-decoration | 装饰线 | none overline underline line-through |
text-indent | 首行缩进 | 2em |
字符间距:letter-spacing
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>文本样式</title> </head> <body> <h1>标题内容</h1> <h2>文本段落主要内容</h2> </body> <style> h1{ letter-spacing: 5pt; } h2{ letter-spacing: -3pt; } </style> </html>
复制
行高:line-height
line-heighh和height的区别,前者会垂直居中
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>文本样式</title> </head> <body> <p id="one"> 这里是web前端开发课程1… </p> <hr/> <p id="two"> 这里是web前端开发课程2… </p> </body> <style> #one{ line-height: 50px; } #two{ height: 50px; /*line-height: 50px;*/ background-color: #cccccc; } </style> </html>
复制
对齐方式text-align和text-indent
- justify:文字向两侧对齐,对最后一行无效。
- left:左对齐
- right: 右对齐
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>文本样式</title> </head> <body> <h1>CSS text-align 实例</h1> <p class="date">3 月 14 号</p> <p class="main">当我年轻的时候,我的想象力从没有受过限制,我梦想改变这个世界。 当我成熟以后,我发现我不能够改变这个世界,我将目光缩短了些决定,只改变我的国家。 当我进入暮年以后,我发现我不能改变我的国家,我的最后愿望仅仅是改变一下我的家庭,但是这也不可能。 当我现在躺在床上行将就木,我突然意识到,如果一开始我仅仅去改变自己,然后作为一个榜样,我可能改变我的家庭,在家人的帮助和鼓励下,我可能为国家做一些事情。 然而,谁知道呢,我甚至可能改变这个世界!</p> </body> <style> h1{ text-align: center; } .date{ text-align: right; } .main{ text-align: justify; text-indent: 2em;//首行缩进 } </style> </html>
复制
装饰线:text-decoration
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>text-decoration</title> </head> <body> <h1>标题1文字</h1> <h2>标题2文字</h2> <h3>标题3文字</h3> </body> <style> h1{ text-decoration: overline; } h2{ text-decoration: line-through; } h3{ text-decoration: underline; } </style> </html>
复制
none:没有线修饰。可以用于取消超链接的下划线。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>text-decoration</title> </head> <body> <ul> <li><a href="#">链接1</a></li> <li><a href="#">链接2</a></li> <li><a href="#">链接3</a></li> </ul> </body> <style> a{ text-decoration: none; } </style> </html>
复制
字体
简化font
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <p>这是一段文本</p> </body> <style> p{ background-color: gray; font: italic bold 15px/50px '宋体'; } </style> </html>
复制
总结
- 单位和颜色
- 文本和字体:
文本css部分属性:letter-spacing、line-height、text-align、text-decoration
字体css部分属性:font、font-style、font-weight、font-szie、font-family
CSS样式(Ⅱ)背景 超链接
背景
- backgroud
- backgroud-color
- backgroud-image
- backgroud-repeat:
repeat:背景图片沿着x方向和y方向对背景区域进行填充。(bgr的默认属性)
repeat-x:背景图片沿着x方向进行填充。
repeat-y:背景图片沿着y方向进行填充。
no-repeat:背景图片在背景区域只显示一次。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>css背景测试</title> </head> <body> <div> <p>这里会显示一张图片</p> </div> </body> <style> div{ height: 600px; width: 1000px; background-color: red; background-image: url('img.png'); background-repeat: repeat-y; /* 默认值是repeat */ } </style> </html>
复制
效果:背景图沿着y方向填充,不会沿着x方向填充。
超链接
链接的4种状态:
- a:link 普通的、未被访问的链接。
- a:visited 用户已经访问的链接。
- a:hover 鼠标悬停在链接上方。
- a:active 链接被点击的时刻。
a:hover必须在a:link和a:visited之后。
a:activev必须在a:hover之后。
下面这种表达其实是CSS中的伪类选择器
a:link{ }
复制
下面代码:点击第一个超链接剩下的的两个超链接的颜色也会变。
原因是::visited伪类选择器,是根据href属性来计算的。
所以只要是href值相同的超链接,只要又一个被访问,其他的超链接也会进入被访问的状态。
所以href只要属性值不同就不会有影响。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <a href="#" class="special-link">迪拜华商财富缩水 瞻望前景信心犹豫 </a> <br/> <a href="#" class="else">迪拜华商财富缩水 瞻望前景信心犹豫 </a> <br/> <a href="#" class="else">迪拜华商财富缩水 瞻望前景信心犹豫 </a> <!--超链接默认就是蓝色--> </body> <style> a:link{ text-decoration: none; color: #09f; } .else:visited{ color: #930; } .special-link:visited{ color: green; } a:hover{ text-decoration: underline; color: red; } a:active{ color: #03c; } </style> </html>
复制
在下面这段css代码中,链接被点击之后,a:hover的效果还是有效的。
a:link{ text-decoration: none; color: #09f; } a:visited{ color: green; } a:hover{ text-decoration: underline; color: red; } a:active{ color: #03c; }
复制
在这段CSS中,当链接被点击之后,a:hover就无效了。
我的理解是:a:hover的优先级是低于.else:visited的。
a:link{ text-decoration: none; color: #09f; } .else:visited{ color: #930; } .special-link:visited{ color: green; } a:hover{ text-decoration: underline; color: red; } a:active{ color: #03c; }
复制
但是当CSS脚本变成下面这段时:链接被点击之后 超链接的hover动作仍然是有效的
对比上面的css代码段,可得类选择器的优先级是高于伪类选择器的。
.special-link:visited、.else:hover的优先级高于a:hover、.else:visited、special-link:visited。)
a:link{ text-decoration: none; color: #09f; } .else:visited{ color: #930; } .special-link:visited{ color: green; } .special-link:hover{ text-decoration: underline; color: red; } .else:hover{ text-decoration: underline; color: red; } a:active{ color: #03c; }
复制
over的优先级是低于.else:visited的。
a:link{ text-decoration: none; color: #09f; } .else:visited{ color: #930; } .special-link:visited{ color: green; } a:hover{ text-decoration: underline; color: red; } a:active{ color: #03c; }
复制
但是当CSS脚本变成下面这段时:链接被点击之后 超链接的hover动作仍然是有效的
对比上面的css代码段,可得类选择器的优先级是高于伪类选择器的。
.special-link:visited、.else:hover的优先级高于a:hover、.else:visited、special-link:visited。
a:link{ text-decoration: none; color: #09f; } .else:visited{ color: #930; } .special-link:visited{ color: green; } .special-link:hover{ text-decoration: underline; color: red; } .else:hover{ text-decoration: underline; color: red; } a:active{ color: #03c; }
复制
加群一起学习进步奥: