css样式简析

css基础

1.“行内样式”、“内嵌样式”、“外链样式”、“导入式”

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" http-equiv="refresh">
<title>中国男篮排位赛广州进行,将与国足下榻同一酒店</title>
<style> // 内嵌样式
p{
text-indent: 4em;
}
h4{
text-align: center;
}
img{
width: 560px;
height: 450px;
}
.p1{
color: chocolate;
}
.p2{
color: aqua;
}
#x2{
color: cornflowerblue;
}
*{
border: 0;
margin: 0;
}
</style>
<link rel="stylesheet" href="h5_css_1.css">
//外链样式 链接地址为编写的css外部代码
</head>
<body>
<article>
<header><h1 style="text-align: center">中国男篮排位赛广州进行</h1></header>
//行内样式
<hr>
<h4 class="p1">(原标题)</h4>
<h5><img src="http://cms-bucket.ws.126.net/
2019/09/05/4740f77e15b9402a8877f302eb67a908.jpeg"></h5>
<p id = "x2">中国男篮59-72不敌委内瑞拉</p>
<p>而据澎湃新闻记者从国足处</p>
</article>

<p><b>延伸 · 回顾</b><hr></p>
<p><a href="https://sports.163.com/19/0904/21/EO8T046J00059AJ8.html">男篮无缘16强球
迷终于忍不了全场高喊"李楠下课"</a></p>
<p class="p2">北京时间9月4日晚</p>
<hr>
</body>
</html>

/*h5_css_1.css*/
h5{
text-align: center;
}

2.css选择器

1.标签选择器
div { width: 300px; height: 300px; background-color: red; }
p { text-indent: 2em; color: blue; }
span { letter-spacing: 5px; font-size: 20px; }

2. 类选择器
.box { width: 300px; height: 300px; background-color: red; }
p.des { text-indent: 2em; color: blue; }

3. id选择器
#box { width: 300px; height: 300px; background-color: red; }
#des { text-indent: 2em; color: blue; }

4. 通用选择器
通用选择器使用 * 表示,它的作用是选择页面中所有的标签元素

5. 后代选择器 可选择嵌套其中的任意一个子类
<style>
.container article { text-align: center; }
.container h1 { color: #000000; }
.container p { color: #008800; }
</style>
<div class="container">
<article>
<h1>Napoléon Bonaparte</h1>
<p>Adversity is the midwife of genius.</p>
</article>
</div>

6. 子类选择器 只能选择直系嵌套下的子类

<style>
.container > article { text-align: center; }
.container > article > h1 { color: #000000; }
.container > article > p { color: #008800; }
</style>

7. 伪类选择器

link:表示链接在正常情况下(即页面刚加载完成时)显示的颜色。
visited:表示链接被点击后显示的颜色。
hover:表示鼠标悬停时显示的颜色。
focus:表示元素获得光标焦点时使用的颜色,主要用于文本框输入文字时使用(鼠标松开时显示的颜色,
可以使用input来查看)。
active:表示当所指元素处于激活状态(鼠标在元素上按下还没有松开)时所显示的颜色。

a { text-decoration: none; }
a:hover { text-decoration: underline;}
a:link{
color: red;
}
a:visited{
color: green;
}
a:hover{
color: red;
}
a:focus{
color:black;
}
a:active{
color: yellow;
}

8. 群组选择器

<style>
a, div, span, p { font-size: 20px; }
div, p { margin: 0; padding: 0; }
</style>


<a href="javascript:;">超链接</a>
<div>布局标签</div>
<span>文本标签</span>
<p>段落标签</p>

3.权重计算值

行内权重值:1000
ID选择器的权重值:100
class和伪类:10
标签选择器:1

!important 最高权重:10000

#html1 {
color: #73d44d !important;
background-color: #93c1d4;
}

    1.每种权重值的最大值只能叠加9次
    2.如果两个地方定义的权重一样的话,那么就按照最后定义的权重为准,这个原则
    使用于 <style>和 <link>混合来使用
    
    

4.css高级选择器

CSS高级选择器区别于CSS普通选择器,是对标签元素的结构、标签元素的索引、标签元素
的状态等一些更为复杂的条件下进行的选择,甚至能改变现有标签的状态结构。

伪元素选择器:向指定的选择器添加指定的效果

1.:first-letter
选择“块级元素”文本段落中的首个字符,只对块级元素生效 如<p>
2.:first-line
选择“块级元素”文本段落中的首行文本,与1一样
3.:before
在指定的选择器之前插入一段内容。插入内容默认为“行内元素”,可通过“display”强制转换类型。
如果需要插入文本字符串,则直接将字符串赋值给 content 属性,
如:`content: 'Hello, world!'
p {
letter-spacing: 5px;
font-size: 25px;
color: #ff4500;
text-shadow: 1px 1px 2px #000;
}
p:after {
/*插入内容,这里以插入图片为例*/
content: url('xiaoxin.jpg');

position: relative;
top: 20px;
}


结构性伪类选择器:该类选择器主要用于当前选择器精确地通过元素“索引值”或“匹配类型”
的索引值定位到该选择器的同级指定元素

1.:first-child
对该类所有父元素中的首个子元素进行选择。
2.:last-child
对该类所有父元素中的最后一个子元素进行选择。
3. :first-of-type
对该类所有父元素中的首个匹配到类型的子元素进行选择。
4. :last-of-type
对该类所有父元素中的最后一个匹配到类型的子元素进行选择。
5. :only-child
对该类所有父元素中只含有唯一所匹配(不包含同级元素/只有一个子元素)的子元素进行选择。
6. :only-of-type
对该类所有父元素中只含有唯一所匹配类型的子元素进行选择。
7. :nth-child(n)
对其父元素的第“n”个子元素进行选择,通过设置参数“n(0开始)”指定为第几个元素。
(该选择器不仅能准确的匹配到第“几”个指定类型的元素,还能对匹配类型元素的“
奇偶索引”值进行选择。odd 表示奇数,even 表示偶数。)
8. :nth-last-child(n)
该选择器和“:nth-child(n)”的特性基本一致,唯一的不同点就是该选择器的索引值是从该选
择器匹配到的元素的同级元素中的最后一个开始进行计算的
9. :empty
   该选择器会匹配所有,或指定基本选择器内没有元素(没有子节点)的标签元素。
10. :not(selector)
   该选择器是用于排除指定元素的选择器。

css文本和字体

1.文本设置


01. 文本对齐方式
text-align 属性用于控制“行内块元素”、“块元素”或“行内元素”(文本元素)的居中方式,
包含三个值:

left:局左对齐(m o'ren)
right:居右对齐
center:居中对齐


02. 段落首行缩进
text-indent 属性是用于设置每个段落首行缩进数量值的属性,CSS字体大小(font-size)可
以设置的数值和单位在该属性的值中都可以使用(除了百分比)。如果是用于中文布局,一般会使
用“2em”的数值和单位来为每个段落的首行缩进“两个字符”。1em就等于16px,2em就是32px。

03. 文本装饰线
text-decoration 属性是为文本上添加一根装饰线,带"href"属性的<a>标签默认
会带有一根下划线,就是由该属性的值“underline”设置的。“text-decoration”
属性有以下值:

none(默认):不显示任何装饰线
underline:在文本下方显示装饰线
overline:在文本上方显示装饰线
line-through:在文本中间显示装饰线,相当于删除线

04. 大小写转换
text-transform 属性能将“行内元素”中的英文文本进行大小写转换,以满足网站对
规范性的要求。该属性有以下属性值:

none(默认):保持文本中英文单词的默认大小写
capitalize:每个英文单词首字母为大写字母,其它为小写字母
uppercase:将所有英文单词转换为大写字母
lowercase:将所有英文单词转换为小写字母

05. 文本阴影
text-shadow 属性的作用是给文本添加阴影效果。目前除了IE9及之前版本不支持该属性外,
其它主流浏览器均支持该属性。该属性有4个值,具体如下:text-shadow: H V blur color;

H:水平偏移,“0”表示维持原位,正数为向右偏移,负数为向左偏移。单位为像素“px”。
V:垂直偏移,“0”表示维持原位,正数为向下偏移,负数为向上偏移。单位为像素“px”。
blur :模糊距离,用 正数 表示阴影模糊的单位距离,距离越大模糊程度越高。单位为像素“px”。
color:阴影颜色,支持Web技术中的常用颜色模式:“颜色英文单词”、“HEX”、“RGBa”、“HSLa”。

<p style="text-shadow: 2px 2px 5px #000;">Hello, World!</p>

06. 文本行高
line-height 属性是用于设置“行内元素”中文本元素在一行中所占据的高度
当文本元素只有一行时,可以将该行的文本行高设为和父容器元素高度一致,以此到达文
本垂直居中的效果。使用场景如:表格、导航按钮、自定义样式按钮、标题栏等。

<!-- HTML 部分 -->
<div class="txt">CHINA</div>

<!-- CSS 部分 -->
<style type="text/css">
.txt {
width: 260px;
height: 260px;
background-color: #000;

color: #fff;
text-align: center;
line-height: 260px;

/*字符间距*/
letter-spacing: 5px;
/*字体大小*/
font-size: 36px;
/*文本阴影*/
text-shadow: 3px 3px 5px skyblue;
}
</style>


07. 单词间距 word-spacing 如“像素(px)”,“字符(em)”,“点(pt)”等,可以为负数。

08. 字符间距 letter-spacing 属性是用于控制字符间的间距,即无论单词或词语中含有空格
(该属性对空格字符无效),该属性都会生效,单位同样为Web技术的常用度量单位,
同样为可以为负数。


2.字体设置


01. 字体颜色
在目前的浏览器标准中,要想改变浏览器默认字体的颜色(#000000)唯一的途径就是通过
CSS的 color 属性进行设置。颜色属性可以设置4种类型的值,有以下类型:颜色属于继承属性

颜色英文单词
HEX(16进制颜色)
RGBa/RGB(Alpha的三原色)
HSLa(Alpha的Hue、Saturation、Lightness)
Transparent(透明)
inherit(继承父级)

02. 字体样式
font-style 用于设置字体类型,可设置以下值:

normal:普通字体
italic:斜体
oblique:倾斜字体

03. 字体粗细
font-weight 用于设置字体粗细,可设置以下值:

normal:正常粗细
bold:粗体
bolder:更粗的字体
lighter:更细的字体
100~900:步长为100,400 等同于 normal,而 700 等同于 bold

04. 字体大小 font-size 目前浏览器的主流的字号都是采用16像素(px)的字体。

05. 字体名称 font-family 用于设置字体系列,就是我们通常说的“所用字体”。

06. 字体组合值 font 属性用于设置字体样式的组合值写法,其语法形式为:


扩展:文字两端对齐

div {

width: 120px;
padding: 5px;
margin: 2px;
border: 1px solid #ff4500;
border-radius: 5px;

text-align-last: justify; /*两端对齐*/
}

css元素分类

1.在CSS中,html中的标签元素大体被分为三种不同的类型:
块状元素、内联元素(又叫行内元素)和内联块状元素。

常用的块状元素有:
<div>、<p>、<h1>...<h6>、<ol>、<ul>、<dl>、<table>、<address>、<blockquote> 、<form>
常用的内联元素有:
<a>、<span>、<br>、<i>、<em>、<strong>、<label>、<q>、<var>、<cite>、<code>
常用的内联块状元素有:
<img>、<input>

2.块级元素 block

块级元素特点:
1、每个块级元素都从新的一行开始,并且其后的元素也另起一行。
2、元素的高度、宽度、行高以及顶和底边距都可设置。
3、元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致),
除非设定一个宽度


3.内联元素 inline
内联元素特点:
1、和其他元素都在一行上;
2、元素的高度、宽度及顶部和底部边距不可设置;
3、元素的宽度就是它包含的文字或图片的宽度,不可改变。


4.内联块状 inline-block
特点
1、和其他元素都在一行上;
2、元素的高度、宽度、行高以及顶和底边距都可设置。


5.类型转换 通过display:block 我们可以将元素转换类型 a{display:block;}

4.盒模型

1. 所谓盒子模型,即是将网页布局中的元素(行内/行内块元素)进行拟物化的比喻,一个盒子由内容
(content)、内间距(padding)、边框(border)以及外边距(margin)组成
提示:只有 块级元素 与 行内块元素 具备盒子模型。


2. CSS盒子模型的类型主要有两个:
IE浏览器盒子模型:box-sizing:border-box;
标准(W3C,其它主流浏览器)盒子模型(默认):box-sizing:content-box;

3.盒子属性:
宽度:width
高度:height
内间距:padding 设置盒子内容与边框之间的间距,即内间距(填充)
padding 可以接收的值为:像素(px)、百分比(%)、inherit(继承)
以及auto(浏览器自计算)
外间距:margin margin 属性主要用于设置某元素相对于同级元素和父级元素的一个距离值,
常用单位像素“px”。该属性对文本类元素(即“行内元素”)标签是无效的。
和 padding 一样


4.边框:border 属性的作用是为设定该属性的元素添加边框 该属性能对任何显示类型的元素设置,包括
“行级元素(inline)”。该属性有三个分支属性:
1)、border-width
设置边框宽度,单位为像素。设定边框的宽度。可以为Web技术中常用的度量单位,
通常为像素“px”。
2)、border-style
设置边框的类型,主要有以下可以设定的值:
none:无边框 solid:实线边框 dotted:点线边框
dashed:虚线边框
double:双线边框 groove:3D凹槽边框
ridge:3D凸槽边框
inset:内浮雕边框 outset:外浮雕边框
3)、border-color
设置边框颜色,支持英文单词、十六进制以及rgb颜色。
4)、border
通过 border 属性直接设置四个方向的边框样式


5.盒子圆角
border-radius:设置边框圆角

6.元素阴影
box-shadow 属性能够让元素获得一个“阴影”效果,根据颜色的不同,有时候也可以叫做“发光”效果


css布局模型

1.css的布局模式分类: 
流动模型(Flow)浮动模型 (Float) 层模型(Layer)

2.流动(Flow)是默认的网页布局模式。也就是说网页在默认状态下的 HTML 网页元素都是根据流动模型
来分布网页内容的。
特征:(1)块状元素都会在所处的包含元素内自上而下按顺序垂直延伸分布,因为在默认状态下,
块状元素的宽度都为100%。实际上,块状元素都会以行的形式占据位置。
(2)第二点,在流动模型下,内联元素都会在所处的包含元素内从左到右水平分布显示。
(内联元素可不像块状元素这么霸道独占一行)

3.float 浮动模型
块状元素都是独占一行,如果现在我们想让两个块状元素并排显示
任何元素在默认情况下是不能浮动的,但可以用 CSS 定义为浮动,如 div、p、table、img
等元素都可以被定义为浮动。

4.层模型:能让层一样可以对每个图层能够精确定位操作
层模型有三种形式:
1、绝对定位(position: absolute) 绝对定位,把图形定义在绝对的位置
2、相对定位(position: relative) 为元素设置层模型中的相对定位,需要设置position:relative
(表示相对定位),它通过left、right、top、bottom属性确定元素在正常文档流中的偏移位置。
3、固定定位(position: fixed) fixed:表示固定定位,与absolute定位类型类似,但它的相对
移动的坐标是视图(屏幕内的网页窗口)本身

css可见性

1.CSS Display(显示) 与 Visibility(可见性)

visibility:hidden:可以隐藏某个元素,但隐藏的元素仍需占用与未隐藏之前一样的空间。
也就是说,该元素虽然被隐藏了,但仍然会影响布局。

display:none:可以隐藏某个元素,且隐藏的元素不会占用任何空间。也就是说,该元素不但
被隐藏了,而且该元素原本占用的空间也会从页面布局中消失。

举例

<!DOCTYPE html>
<title>Title</title> <style>
ul{
list-style-type: none;
}
#ul1{
/*
1.把 边框去掉
2. 把li标签上面的点号去掉
*/
margin: auto;
padding: 0;
width: 400px;
}
#ul1>li{
/*
给li标签整个增加背景颜色
给li标签增加下面的分析
*/
background-color: #8bd400;
margin-bottom: 2px;
margin-left: 2px;
height: 40px;
width: 80px;
border-radius: 5px;
float: left;
}
a{
/**
把a标签的下划线去掉
*/
display:block;
height: 40px;
text-decoration: none;
/*
把文字放在中间
*/
text-align: center;
/*
把文字行间距和整个block一样,那么文字就居中了
*/
line-height:40px;
/*
加上椭圆
*/

border-radius: 5px;

}
#li1{
position: relative;
}

#li1 ul{
margin: 0;
padding: 0;
position: absolute;
display: none;
}
#li1 ul>li{
margin: 0;
color: grey;
text-align: left;
border: 1px solid;
background-color: #ffcf41;

}
/**
当数据过去的时候,整体变成深绿色
*/
a:hover{
background-color: green;
}

/*.c_li1:hover #ul2{*/
/*display: block;*/
/*}*/

#ul1 li:hover >a~ul{
display: block;
}

#ul2 a:hover{
background-color: blue;
}

</style>