01-CSS基础知识

一、选择器

1.1、单一选择器

(1)、id选择器

语法:HTML元素以id属性来设置id选择器,以 "#" 来定义。
例如:#para1 {}

(2)、类选择选择器

语法:HTML元素以class属性来设置类选择器,以 "." 来定义。
例如:.center {}

(3)、标签选择器

语法:HTML元素以元素名称来设置标签选择器。
例如:h1 {}

(4)、通配符选择器

语法:与文档中的任何元素匹配,以 "*" 来定义。
例如:* {}

1.2、复合选择器

(1)、后代选择器

语法:父级 某层子级 {属性:属性值}
例:div p {} 选择div下所有层的p标签

(2)、子代择选择器

语法:父级>子级 {属性:属性值}
例:div>p {} 选择div的下一级p标签

(3)、交集选择器

语法:标签类名 {属性:属性值}
例:p.one {} 选择即是p标签又是.one类

(4)、并集选择器

语法:选择器1, 选择器2, 选择器3 {属性:属性值}
例:p, .one, #two {} 选择p标签和.one类和#two类

(5)、链接伪类选择器

​ 顺序尽量颠倒,按照 lvha 的顺序

a:link 未访问的链接
a:visited 已访问的链接
a:hover 鼠标悬停链接上
a:active 鼠标点击链接时

1.3、继承 层叠 优先级

(1)、优先级

表达式或示例 说明 权重
!important div{color:#f00 !important;} 无穷
嵌入式央视 style = "" 1000
ID选择器 #aaa 100
类选择器 .aaa 10
标签选择器 h1 元素的tagName 1
属性选择器 [title] 详见这里 10
相邻选择器 selecter + selecter 拆分为两个选择器再计算
兄长选择器 selecter ~ selecter 拆分为两个选择器再计算
亲子选择器 selecter > selecter 拆分为两个选择器再计算
后代选择器 selecter selecter 拆分为两个选择器再计算
通配符选择器 * 0
各种伪类选择器 如:link, :visited, :hover, :active, :target, :root, :not等 10
各种伪元素 如::first-letter,::first-line,::after,::before,::selection 1

(2)、层叠

​ 优先级就近原则,同权重情况下样式定义最近者为准;

(3)、继承

  • 字体系列属性:font-family,font-weight,font-size,font-style。
  • 文本系列属性:text-indent,text-align,line-height,word-spacing,letter-spacing,text-transform,color。
  • 元素可见性:visibility
  • 列表布局属性:list-style(list-style-type、list-style-image)
  • 光标属性:cursor

二、标签样式

2.1、背景(background)

Property 描述 属性值
background 简写属性。
background-attachment 背景图像是否固定或者随着页面滚动。 fixed、scroll、inherit
background-color 设置元素的背景颜色。
background-image 把图像设置为背景。
background-position 设置背景图像的起始位置。
background-repeat 设置背景图像是否及如何重复。 repeat-x/y、no-repeat

2.2、字体(font)

Property 描述 属性值
font 在一个声明中设置所有的字体属性
font-family 指定文本的字体系列
font-size 指定文本的字体大小
font-style 指定文本的字体样式
font-weight 指定字体的粗细。

2.3、文本(text)

Property 描述 属性值
color 设置文本颜色
line-height 设置行高
text-align 对齐元素中的文本
text-decoration 向文本添加修饰
text-indent 缩进元素中文本的首行
text-shadow 设置文本阴影
Property 描述
a:link 未访问链接
a:visited 已访问链接
a:hover 鼠标移动到链接上
a:active 鼠标点击时

2.5、列表(ul)

2.6、表格(table)

2.7、边框(border)

Property 描述 属性值
border-style 边框样式 dotted、dashed、solid、double...
border-width 边框宽度
border-color 边框颜色

三、布局

3.1、盒子模型

3.1.1、介绍

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

不同部分的说明:

  • Margin(外边距) - 清除边框外的区域,外边距是透明的。
  • Border(边框) - 围绕在内边距和内容外的边框。
  • Padding(内边距) - 清除内容周围的区域,内边距是透明的。
  • Content(内容) - 盒子的内容,显示文本和图像。

3.1.2、margin

(1)、属性值

说明
auto 设置浏览器边距。 这样做的结果会依赖于浏览器
length 定义一个固定的margin(使用像素,pt,em等)
% 定义一个使用百分比的边距

(2)、简写

margin属性可以有一到四个值。

  • margin:25px 50px 75px 100px:上、右、下、左的边距。
  • margin:25px 50px 75px:上、左右、下的边距。
  • margin:25px 50px:上下、左右的边距。
  • margin:25px:4个边距

3.1.3、padding

(1)、属性值

说明
length 定义一个固定的填充(像素, pt, em,等)
% 使用百分比值定义一个填充

(2)、简写

​ 和margin属性一样书写。

3.2、浮动(float)

3.2.1、定义

3.2.2、属性值

属性 描述
clear 指定不允许元素周围有浮动元素。 left right both none inherit
float 指定一个盒子(元素)是否可以浮动。 left right none inherit

3.2.3、特性

  • 脱离标准普通流控制,浮动到指定位置,浮动的盒子不在保留预先的位置
  • 浮动元素会在一行显示并且顶部对齐
  • 浮动元素具有行内块元素特性

3.2.4、清除浮动

方式一:额外标签(隔墙法)

<style>
	.clear {
		clear: both;
	}
</style>
<div class="box">
	<div class="clear"></div><!-- 这个新增的盒子要求必须是块级元素不能是行内元素 -->
</div>

方式二:父级添加overflow

.box {
	/* 清除浮动 */
	overflow: hidden;
}

方式三:父级添加:after伪类元素

.clearfix:after {
	content: "";
	display: block;
	height: 0;
	clear: both;
	visibility: hidden;
}
.clearfix { 
	/* IE6、7 专有 */
	*zoom: 1;
}

方式四:父级添加双伪元素

.clearfix:before,.clearfix:after {
	content: "";
	display: table;
}
.clearfix:after {
	clear: both;
}
.clearfix {
	*zoom: 1;
}

3.3、定位(Position)

3.3.1、定义

3.3.2、分类

(1)、static

​ HTML 元素的默认值,即没有定位,遵循正常的文档流对象。静态定位的元素不会受到 top, bottom, left, right影响。

(2)、relative

​ 相对定位元素的定位是相对其正常位置。移动相对定位元素,原本所占的空间不会改变。

(3)、absolute

​ 绝对定位的元素的位置相对于最近的已定位父元素,如果元素没有已定位的父元素,那么它的位置相对于,定位使元素的位置与文档流无关,因此不占据空间。

(4)、fixed

​ 元素的位置相对于浏览器窗口是固定位置。即使窗口是滚动的它也不会移动,Fixed定位使元素的位置与文档流无关,因此不占据空间。

(5)、sticky

​ 粘性定位的元素是依赖于用户的滚动,在 position:relativeposition:fixed 定位之间切换。行为就像 position:relative; 而当页面滚动超出目标区域时,它的表现就像 position:fixed;,它会固定在目标位置。

3.3.3、定位堆叠顺序

z-indent = 1;

3.4、显示

3.4.1、visibility

语法: visibility : inherit | visible | collapse | hidden
参数:

  • inherit:继承上一个父对象的可见性
  • visible:对象可视
  • hidden:对象隐藏

注意:hidden隐藏某个元素,元素仍需占用与未隐藏之前一样的空间。

3.4.2、display

语法:display : none | inline | block | inline-block | ...
参数:

  • none: 隐藏对象。
  • inline: 指定对象为内联元素。
  • block: 指定对象为块元素。
  • inline-block: 指定对象为内联块元素。(CSS2)

注意:与visibility属性的hidden值不同,其不为被隐藏的对象保留其物理空间

3.4.3、Overflow

​ CSS overflow 属性可以控制内容溢出元素框时在对应的元素区间内添加滚动条。

描述
visible 默认值。内容不会被修剪,会呈现在元素框之外。
hidden 内容会被修剪,并且其余内容是不可见的。
scroll 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
auto 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。
inherit 规定应该从父元素继承 overflow 属性的值。

四、CSS使用技巧

4.1、精灵图使用

(1)、原理

(2)、示例

.box1 {
	width: 60px;
	height: 60px;   
	margin: 100px auto;
	background: url(images/sprites.png) no-repeat   -182px 0;
}

4.2、字体图标使用

(1)、原理

(2)、示例

/* 字体声明 */
@font-face {
	font-family: 'icomoon';
	src:  url('fonts/icomoon.eot?p4ssmb');
	src:  url('fonts/icomoon.eot?p4ssmb#iefix') format('embedded-opentype'),url('fonts/icomoon.ttf?p4ssmb') format('truetype'),url('fonts/icomoon.woff?p4ssmb') format('woff'),url('fonts/icomoon.svg?p4ssmb#icomoon') format('svg');
	font-weight: normal;
	font-style: normal;
	font-display: block;
}
span {
	font-family: 'icomoon';
	font-size: 100px;
	color:pink;
}

4.3、CSS三角制作

(1)、原理

(2)、示例

.box2 {
	width: 0;
	height: 0;
	border: 50px solid transparent;
	border-left-color: pink;
}

4.4、表单轮廓和防止拖拽

(1)、示例

input, textarea {
	/* 取消表单轮廓 */
	outline: none;
}
textarea {
	/* 防止拖拽文本域 */
	resize: none;
}

4.5、鼠标样式

(1)、示例

<ul>
	<li style="cursor: default;">我是默认的小白鼠标样式</li>
	<li style="cursor: pointer;">我是鼠标小手样式</li>
	<li style="cursor: move;">我是鼠标移动样式</li>
	<li style="cursor: text;">我是鼠标文本样式</li>
	<li style="cursor: not-allowed;">我是鼠标禁止样式</li>
</ul>

4.6、图片和文字对齐方式

(1)、示例

img {
	vertical-align: middle;
}
baseline 默认。元素放置在父元素的基线上。
sub 垂直对齐文本的下标。
super 垂直对齐文本的上标
top 把元素的顶端与行中最高元素的顶端对齐
text-top 把元素的顶端与父元素字体的顶端对齐
middle 把此元素放置在父元素的中部。
bottom 把元素的顶端与行中最低的元素的顶端对齐。
text-bottom 把元素的底端与父元素字体的底端对齐。
length
% 使用 "line-height" 属性的百分比值来排列此元素。允许使用负值。
inherit 规定应该从父元素继承 vertical-align 属性的值。

4.7、溢出文字隐藏

(1)、单行

div {
	width: 150px;
	height: 80px;
	background-color: pink;
	margin: 100px auto;
	white-space: nowrap;/* normal:换行显示。nowrap:单行显示 */
	overflow: hidden;
	text-overflow: ellipsis;/* 3. 文字溢出的时候用省略号来显示 */
}

(2)、多行

div {
	width: 150px;
	height: 65px;
	background-color: pink;
	margin: 100px auto;
	overflow: hidden;
	text-overflow: ellipsis;        
	display: -webkit-box;/* 弹性伸缩盒子模型显示 */          
	-webkit-line-clamp: 3;/* 限制在一个块元素显示的文本的行数 */          
	-webkit-box-orient: vertical;/* 设置或检索伸缩盒对象的子元素的排列方式 */
}

4.8、CSS初始化

/* 把我们所有标签的内外边距清零 */
* {
    margin: 0;
    padding: 0
}
/* em 和 i 斜体的文字不倾斜 */
em,
i {
    font-style: normal
}
/* 去掉li 的小圆点 */
li {
    list-style: none
}

img {
    /* border 0 照顾低版本浏览器 如果 图片外面包含了链接会有边框的问题 */
    border: 0;
    /* 取消图片底侧有空白缝隙的问题 */
    vertical-align: middle
}

button {
    /* 当我们鼠标经过button 按钮的时候,鼠标变成小手 */
    cursor: pointer
}

a {
    color: #666;
    text-decoration: none
}

a:hover {
    color: #c81623
}

button,
input {
    /* "\5B8B\4F53" 就是宋体的意思 这样浏览器兼容性比较好 */
    font-family: Microsoft YaHei, Heiti SC, tahoma, arial, Hiragino Sans GB, "\5B8B\4F53", sans-serif
}

body {
    /* CSS3 抗锯齿形 让文字显示的更加清晰 */
    -webkit-font-smoothing: antialiased;
    background-color: #fff;
    font: 12px/1.5 Microsoft YaHei, Heiti SC, tahoma, arial, Hiragino Sans GB, "\5B8B\4F53", sans-serif;
    color: #666
}

.hide,
.none {
    display: none
}
/* 清除浮动 */
.clearfix:after {
    visibility: hidden;
    clear: both;
    display: block;
    content: ".";
    height: 0
}

.clearfix {
    *zoom: 1
}

猜你喜欢

转载自www.cnblogs.com/ciyelc/p/13205957.html
今日推荐