CSS基础知识整理

CSS发展史

  1. css1.0
  2. css 2.0
    (1)div+css布局
    (2)html与css结构分离思想
    (3)网页变得简单
    (4)利于SEO
  3. css2.1
    (1)浮动 float
    (2)定位 position
  4. css3
    (1)圆角 (border-radius)
    (2)阴影 (text-shadow、box-shadow)
    (3)动画 animation
    (4)浏览器兼容性

CSS入门

基本语法

原则:就近原则
使用方式:
(1)行内样式
(2)内部样式
(3)外部样式引入
① style 页面先渲染骨架,再添加样式

@import url(../css/style.css)

② link 常用


css选择器

基础选择器

  1. 标签选择器 span
  2. id选择器 #id
  3. css选择器 .class

高级选择器

层次选择器

  1. 后代选择器--->所有的后代--->空格
  2. 子代选择器--->只有一代,只是儿子辈(父子关系)--->>
  3. 相邻兄弟选择器--->同级,向下一个--->+
  4. 通用选择器--->同级向下多个--->~

结构伪类选择器

  1. p:nth-child(1)--->顺序 p元素的父级的子集的第一个元素,如果是p则有样式,否则没有样式
  2. p:nth-of-type(1)--->类型 p元素的父级的子集中的p元素的第一个样式
  3. ul li:first-child--->第一个li样式
  4. ul li:last-child--->最后一个li样式

属性选择器

  1. 属性名(包含属性名即可,不要用引号)
    a[name] {color: red;}
  2. 属性名 绝对等于
    a[name='username'] {color: red;}
    与简单属性选择器类似,可以把多个属性-值选择器链接在一起来选择一个文档。
    a[href="http://www.w3school.com.cn/"][title="W3School"] {color: red;}
  3. 属性名正则匹配
    1. 属性名 以什么开头--->a[class^="123"] {color: red;}
    2. 属性名 以什么结尾--->a[class$="123"] {color: red;}
    3. 属性名 包含什么--->a[class*="123"] {color: red;}

美化页面

字体

font-family
font-size
color(rgb  rgba)
font-weight
text-shadow 文字阴影

排版网页

text-align='center'      文字居中,水平对齐
vertical-align='middle'      文字垂直居中
text-indent='2em'      首行缩进
line-height      行高,上下居中
text-decoration      文本描述,上、中、下、无下滑线(overline   line-through  underline   none)

超链接伪类

:link      未访问链接
:hover      鼠标悬停链接
:active      正在访问链接
:visited      已访问链接

列表样式

list-style     
none      去掉样式
disc      实心圆(默认)
circle       空心圆
decimal      数字
square      实心方块

背景样式

背景颜色

渐变背景 https://www.grabient.com/

background-image: linear-gradient(43deg, #4158D0 0%, #C850C0 46%, #FFCC70 100%);
background-image: linear-gradient(103deg, #0093E9 0%, #80D0C7 100%);

图片 + 渐变色的实现
background: url(../../images/20210818/individual/individual_bgImage.png) no-repeat,linear-gradient(303deg, #186EE8 0%, #1B6FE8 9%, #2274E9 19%, #2B79EA 28%, #3481EB 38%, #3D89EC 48%, #4591ED 57%, #4D99EF 66%, #54A0F0 74%, #5AA7F1 81%, #60AEF2 88%, #64B3F4 93%, #67B7F4 97%, #69B9F5 99%, #6ABAF5 100%)

背景图片

background
background-image      背景图片
background-repeat      背景平铺样式
background-color        背景颜色
background-position      背景定位
background-size          背景大小

不常用的属性
background-attachment      设置背景图像是否固定或者随着页面的其余部分滚动。
background-blend-mode          属性定义了背景层的混合模式(图片与颜色)。
background-clip                    规定背景的绘制区域:
background-origin              规定 background-position 属性相对于什么位置来定位。

background-attachment 设置背景图像是否固定或者随着页面的其余部分滚动。

属性值 描述
scroll 背景图片随着页面的滚动而滚动,这是默认的。
fixed 背景图片不会随着页面的滚动而滚动。
local 背景图片会随着元素内容的滚动而滚动。
initial 设置该属性的默认值。 阅读关于 initial 内容
inherit 指定 background-attachment 的设置应该从父元素继承。

background-origin 规定 background-position 属性相对于什么位置来定位。

描述
padding-box 背景图像相对于内边距框来定位。
border-box 背景图像相对于边框盒来定位。
content-box 背景图像相对于内容框来定位。

盒子模型

外边距

margin

边框

border

内边距

padding

内容

content

盒子模型计算

margin+border+padding+内容的宽高

圆角边框

order-radius
顺序: 左上,右上,右下,左下
画圆是order-radius=半径
画扇形,除了order-radius,还需要在意宽和高

border-radius: 1-4 length|% / 1-4 length|%;
描述
length 定义弯道的形状。
% 使用%定义角落的形状。

盒子阴影

box-shadow

box-shadow: h-shadow v-shadow blur spread color inset;
说明
h-shadow 必需的。水平阴影的位置。允许负值
v-shadow 必需的。垂直阴影的位置。允许负值
blur 可选。模糊距离
spread 可选。阴影的大小
color 可选。阴影的颜色。在CSS颜色值寻找颜色值的完整列表
inset 可选。从外层的阴影(开始时)改变阴影内侧阴影

盒子模型兼容性问题

W3C盒子模型(标准盒模型)和IE盒子模型(怪异盒模型)

标准盒模型

根据 W3C 的规范,元素内容占据的空间是由 width 属性设置的,而内容周围的 padding 和 border 值是另外计算的;即在标准模式下的盒模型,盒子实际内容(content)的width/height=我们设置的width/height;
盒子总宽度/高度=width/height+padding+border+margin。

IE盒子模型

在该模式下,浏览器的 width 属性不是内容的宽度,而是内容、内边距和边框的宽度的总和;
即在怪异模式下的盒模型,盒子的(content)宽度+内边距padding+边框border宽度=我们设置的width(height也是如此),
盒子总宽度/高度=width/height + margin = 内容区宽度/高度 + padding + border + margin。

两种模式下如何解决样式的兼容性问题

建议不要给元素添加具有指定宽度的内边距,而是尝试将内边距或外边距添加到元素的父元素和子元素。

CSS3指定盒子模型种类

box-sizing 属性允许您以特定的方式定义匹配某个区域的特定元素。
box-sizing: content-box;//宽度和高度分别应用到元素的内容框。在宽度和高度之外绘制元素的内边距和边框。
box-sizing: border-box;// 为元素设定的宽度和高度决定了元素的边框盒。就是说,为元素指定的任何内边距和边框都将在已设定的宽度和高度内进行绘制。通过从已设定的宽度和高度分别减去边框和内边距才能得到内容的宽度和高度。
box-sizing: inherit;// 规定应从父元素继承 box-sizing 属性的值。
即box-sizing属性可以指定盒子模型种类,
content-box指定盒子模型为W3C(标准盒模型),
border-box为IE盒子模型(怪异盒模型)。

参考资料: https://www.imooc.com/article/68238/

浮动

display属性

inline
block
inline-block

描述
none 此元素不会被显示。
block 此元素将显示为块级元素,此元素前后会带有换行符。
inline 默认。此元素会被显示为内联元素,元素前后没有换行符。
inline-block 行内块元素。(CSS2.1 新增的值)
inherit 规定应该从父元素继承 display 属性的值。

浮动 float

描述
left 元素向左浮动。
right 元素向右浮动。
none 默认值。元素不浮动,并会显示在其在文本中出现的位置。
inherit 规定应该从父元素继承 float 属性的值。

清除浮动 clear

描述
left 在左侧不允许浮动元素。
right 在右侧不允许浮动元素。
both 在左右两侧均不允许浮动元素。
none 默认值。允许浮动元素出现在两侧。
inherit 规定应该从父元素继承 clear 属性的值。

解决父级边框塌陷问题(4种方法)

方法一

直接给父级定义高度

方法二

在最后添加空div标签,添加属性clear:both;

方法三

父级元素增加overflow属性 overflow:hidden;

方法四

给父级元素增加伪类选择器

:after{  content:"";  display:block;  clear:both;}

定位

默认定位 static

相对定位 relative

相对于原来的位置进行偏移,还是在标准文档流中,原来的位置会被保留

绝对定位 absolute

没有父级元素的情况下,相对于浏览器进行定位
如果父级元素存在定位,就相对父级元素进行定位
并且在父级元素内部进行偏移
不在文档流中,原来的位置不会被保留

固定定位 fixed

定位操作

top
right
bottom
left

z-index属性

z-index 属性指定一个元素的堆叠顺序。
拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面。

opactiy属性

透明度(0~1)

opacity:0.5;
filter:Alpha(opacity=50)

你可能感兴趣的:(CSS基础知识整理)