Hugenye的个人博客

网页三剑客之CSS

字数统计: 2.3k阅读时长: 9 min
2020/06/28 Share

css简介

什么是CSS

层叠样式标签,css对html进行样式修饰。

样式表:css属性样式的集合,不同的css样式对同一个html标签进行修饰,按照优先级先后引用

css的作用

修饰html使其html的样式更加好看

提高属性的复用性

html内容与样式相分割开,便于后期维护

css的引入方式和书写规范

内嵌样式

1
2
3
4
5
6
 将属性直接写到标签内
<div style="width:50px;color:blue;font-size:50px"> 你们好</div>
语法:
1.使用style属性,将样式嵌入到html标签中
2.属性写法: 属性:属性值
3.多个属性之间使用;分开

内部样式

在head标签中,使用style标签对css属性的引入

外部样式

1
2
3
4
5
6
7
8
css提取成一个特有的文件,放置在指定的文件夹中,谁使用,谁引用即可。
<link rel="stylesheet" type="text/css" href="路径" />

语法:
1.创建css文件,将css属性写到文件中,
2.在head中使用link标签进行引入
3.属性的写法: 属性:属性值
4.多个属性之间使用分号;隔开

css选择器

基本选择器

标签选择器

1
2
3
4
5
标签名{
属性:属性值;
属性:属性值
}
<标签名> </标签名>

id选择器

1
2
3
4
5
#id{
属性:属性值;
属性:属性值
}
<div id="id值">this is a div</div>

类型选择器

1
2
3
.类名{

}

ps:对使用三种基本选择器对同一个标签进行修改,id>class>标签

属性选择器

1
2
3
基本选择器[属性='属性值']{

}

伪元素选择器

1
2
3
4
5
6
7
选择器:伪元素 {
属性:属性值;
}
CSS 类也可以与伪元素配合使用:
选择器 .类名:伪元素 {
属性:属性值;
}
属性 描述 CSS
:first-letter 向文本的第一个字母添加特殊样式。 1
:first-line 向文本的首行添加特殊样式。 1
:before 在元素之前添加内容。 2
:after 在元素之后添加内容。 2

伪类选择器

1
2
3
4
5
6
7
选择器 : 伪类 {
属性: 属性值
}
//CSS 类也可与伪类搭配使用。
选择器 .class : 伪类 {
属性: 属性值
}
1
2
3
4
5
6
7
8
9
10
11
a四种状态  
1.未选中状态 a:link{ css属性}
2.悬浮状态 a:hover{css属性}
3.出发触发状态 a:active{css属性}
4.完成状态 a:visited{css属性}

四个伪类的声明顺序应该是:':link'、':visited'、':hover'、':active'

提示:在 CSS 定义中,a:hover 必须被置于 a:linka:visited 之后,才是有效的。
提示:在 CSS 定义中,a:active 必须被置于 a:hover 之后,才是有效的。
提示:伪类名称对大小写不敏感。

first-child 第一个元素

1
2
3
4
p:first-child{
属性:属性值;
}
注释:必须声明 <!DOCTYPE>,这样 :first-child 才能在 IE 中生效。
属性 描述 CSS
:active 向被激活的元素添加样式。 1
:focus 向拥有键盘输入焦点的元素添加样式。 2
:hover 当鼠标悬浮在元素上方时,向元素添加样式。 1
:link 向未被访问的链接添加样式。 1
:visited 向已被访问的链接添加样式。 1
:first-child 向元素的第一个子元素添加样式。 2
:lang 向带有指定 lang 属性的元素添加样式。 2

派生选择器

一层一层向下获取标签,遵循元素属性和id选择方式的规则,不同层级之间需要添加 空格

1
2
3
4
5
6
7
8
9
h2 strong {
color: blue;
}
#len li{
text-align:right;
}
.fancy td{
background:#566;
}

后代选择器

1
2
只对 h1 元素中的 em 元素应用样式
h1 em {color:red;}

子元素选择器

1
2
只作为 h1 元素子元素的 strong 元素
h1 > strong {color:red;}

相邻兄弟选择器

1
2
选择紧接在 h1 元素后出现的段落,h1p 元素拥有共同的父元素
h1 + p {margin-top:50px;}

css属性

文字属性

1
2
3
4
font-size: 80px;
font-family: '黑体';
font-style: italic;
font-weight:blod

文本属性

1
2
3
4
5
6
color:red;
text-decoration:下划线
属性值:none underline
text-align 对其方式
属性值:left right center
line-height

背景属性

1
2
3
4
5
6
7
8
9
10
11
12
background-color:
background-image:背景图片
background-repeat:平铺方式
background-position: 左 上
background:red url("./img.gif") no-repeat right top;

position指定位置
body{
background-image:url("buy.gif");
background-repeat:no-repeat;
background-position: left top;
}

列表属性

1
2
3
list-style-type 列表前面的小标志
list-style-image 列表前面的小图片
url(图片地址);

尺寸属性

1
2
width  100px  100%
height

显示属性

1
2
3
4
5
6
7
8
9
10
11
display  block块级显示 
none 隐藏
inline 行级显示
.css{
display:block//"把行内标签变为块级标签显示
}
// 示例:form表单提交显示 span内容;
function btnclick(){
var sp = document.getElementById("span");
sp.style.display="inline"
}

定位属性

1
2
3
4
5
position:定位位置		  
static
relative
fixed
absolute

Static定位

HTML元素的默认值,即没有定位,元素出现在正常的流中。

静态定位的元素不会受到 top, bottom,

Fixed定位

元素的位置相对于浏览器窗口是固定位置。

即使窗口是滚动的它也不会移动:

Relative定位

相对定位元素的定位是相对其正常位置

Absoulute定位

绝对位置,相对于html边界的距离,可以将元素设置到页面的任何位置;

浮动属性

1
2
3
4
float: 浮动位置 相对于父容器的位置
left
right
//clear可以清楚浮动,浮动会对正常排序的标签造成影响,所以在使用浮动后,我们通常要进行清除浮动==》.clear{clear:both}

浮动造成的问题:

1、边框和背景不能撑开

2、影响下一个标签的正常显示

盒子模型

CSS 盒子模型(Box Model)是什么?

1
2
3
所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用。
CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容。
盒模型允许我们在其它元素和周围元素边框之间的空间放置元素

属性

border边框

border-left/right/bottom/top 边框位置

border-style:线型

border-width:线粗 ,可以指定边框的宽度

【边框指定宽度的方法】:1、可以指定长度值,比如20px或者0.2em等等;

或者2、使用3个关键字之一(thick、medium默认值、thin)

border-color;线颜色

padding内边距
1
2
3
4
padding:1px 2px 3px 4px;上右下左
padding:1px 2px;上下/左右
padding:1px 2px 3px;
padding-top:单独设置
margin外边距
1
2
3
4
5
margin:10px;代表上下左右都是10px
margin:1px 2px 3px 4px;上右下左
margin:1px 2px;上下/左右
margin:1px 2px 3px;
margin-top:单独设置

css边框

直角边框

示例:css设置三角图形border-xxx位置的-color

1
2
3
4
5
6
7
8
9
10
11
12
 <style>
.tr1{
width: 0;
height: 0;
border: 100px solid transparent;
border-top-color: red;
border-bottom: none;
/* border-left-color: transparent;
border-right-color: transparent; */
}
</style>
 <div class="tr1"></div>

border-xxx位置的-color可能设置的值

描述
color_name 规定颜色值为颜色名称的边框颜色(比如 red)。
hex_number 规定颜色值为十六进制值的边框颜色(比如 #ff0000)。
rgb_number 规定颜色值为 rgb 代码的边框颜色(比如 rgb(255,0,0))。
transparent 默认值。边框颜色为透明。
inherit 规定应该从父元素继承边框颜色。
圆角边框

用 CSS3,你可以创建圆角边框,添加阴影框,并作为边界的形象而不使用设计程序,如 Photoshop

边框属性:

1
2
3
border-radius
box-shadow 元素阴影
text-shadow 文字阴影

基本语法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
box-shadow:[inset] x-offset y-offset blur-radius spread-radiuscolor
}
{box-shadow:[投影方式] X轴偏移量 Y轴偏移量 阴影模糊半径 阴影扩展半径 阴影颜色}
/**
box-shadow属性的参数设置取值:

阴影类型:此参数可选。如不设值,默认投影方式是外阴影;如取其唯一值“inset”,其投影为内阴影;

X-offset:阴影水平偏移量,其值可以是正负值。如果值为正值,则阴影在对象的右边,其值为负值时,阴影在对象的左边;

Y-offset:阴影垂直偏移量,其值也可以是正负值。如果为正值,阴影在对象的底部,其值为负值时,阴影在对象的顶部;

阴影模糊半径:此参数可选,,但其值只能是为正值,如果其值为0时,表示阴影不具有模糊效果,其值越大阴影的边缘就越模糊;

阴影扩展半径:此参数可选,其值可以是正负值,如果值为正,则整个阴影都延展扩大,反之值为负值时,则缩小;

阴影颜色:此参数可选。如不设定颜色,浏览器会取默认色,但各浏览器默认取色不一致,特别是在webkit内核下的safari和chrome浏览器下表现为透明色,在Firefox/Opera下表现为黑色(已验证),建议不要省略此参数。
*/

示例:阴影圆角

多背景应用:
 background-image: url(../img/bookcover/101.jpg),url(../img/bookcover/103.jpg);
background-position: right bottom, left top; 
background-repeat: no-repeat, no-repeat; 
CATALOG
  1. 1. css简介
    1. 1.1. 什么是CSS
    2. 1.2. css的作用
    3. 1.3. css的引入方式和书写规范
      1. 1.3.1. 内嵌样式
      2. 1.3.2. 内部样式
      3. 1.3.3. 外部样式
  2. 2. css选择器
    1. 2.1. 基本选择器
      1. 2.1.1. 标签选择器
      2. 2.1.2. id选择器
      3. 2.1.3. 类型选择器
    2. 2.2. 属性选择器
    3. 2.3. 伪元素选择器
    4. 2.4. 伪类选择器
    5. 2.5. 派生选择器
      1. 2.5.1. 后代选择器
      2. 2.5.2. 子元素选择器
      3. 2.5.3. 相邻兄弟选择器
  3. 3. css属性
    1. 3.1. 文字属性
    2. 3.2. 文本属性
    3. 3.3. 背景属性
    4. 3.4. 列表属性
    5. 3.5. 尺寸属性
    6. 3.6. 显示属性
    7. 3.7. 定位属性
      1. 3.7.1. Static定位
      2. 3.7.2. Fixed定位
      3. 3.7.3. Relative定位
      4. 3.7.4. Absoulute定位
    8. 3.8. 浮动属性
  4. 4. 盒子模型
    1. 4.1. CSS 盒子模型(Box Model)是什么?
      1. 4.1.1. 属性
        1. 4.1.1.1. border边框
        2. 4.1.1.2. padding内边距
        3. 4.1.1.3. margin外边距
      2. 4.1.2. css边框
        1. 4.1.2.1. 直角边框
        2. 4.1.2.2. 圆角边框
        3. 4.1.2.3. 多背景应用: