首页 > 技术文章 > 前端之css

caozhenghua 2019-11-13 17:03 原文

什么是CSS?

  CSS(Cascading Style Sheet)译作"层叠样式表",是用于控制或增强网页样式并允许将样式信息与网页内容分离的一种标记性语言。 使用CSS样式可以控制许多仅使用HTML无法控制的属性。当浏览器中打开一个HTML网页时,浏览器将读取该网页中的HTML标签,并根据内置的 解释规则将网页元素呈现出来。CSS决定浏览器将如何描述HTML元素的表现形式。

CSS3模块

CSS3中的模块
模块名称功能描述
Basic box model 定义各种与盒相关的样式
Line 定义各种与直线相关的样式
Lists 定义各种与列表相关的样式
Presentation Levels 定义页面中元素的不同样式级别
Speech 定义各种与语音相关的样式。比如音量,音速,说话间歇时间等属性
Background and border 定义各种与背景和边框相关的样式
Text 定义各种与文字相关的样式
Color 定义各种与颜色相关的样式
Font 定义各种与字体相关的样式
Paged Media 定义各种页眉,页脚,页数等页面元数据的样式
Cascading and inheritance 定义怎样对属性进行赋值
Value and Units 将页面上各种各样的值与单位进行统一定义,以供其他模板使用
Image Values 定义对image元素的赋值方式
2D Transforms 在页面中实现二维空间上的变形效果
3D Transforms 在页面中实现三维空间上的变形效果
Transforms 在页面中实现平滑过渡的视觉效果
Animations 在页面中实现动画
CSSOM View 查看管理页面或页面的视觉效果,处理元素的位置信息
Syntax 定义CSS样式表的基本结构,样式表中的一些语法细节,浏览器对于样式表的分析规则
Generated and Replaced Content 定义怎样在元素中插入内容
Marquee 定义当一些元素的内容太大,超出指定的元素尺寸时,是否以及怎样显示溢出部分
Ruby 定义页面中ruby元素(用于显示拼音文字)的样式
Writing Modes 定义页面中文本数据的布局方式
Basic User Interface 定义在屏幕,纸张上进行输出时页面的渲染方式
Namespaces 定义使用命名空间时的语法
Media Queries 根据媒体类型来实现不同的样式
'Reader' Media Type 定义用于屏幕阅读器之类的阅读程序时的样式
Multi-column Layout 在页面中使用多栏布局方式
Template Layout 在页面中使用特殊布局方式
Flexible Box Layout 创建自适应浏览器窗口的流动布局或自适应字体大小的弹性布局
Grid Position 在页面中使用风格布局方式
Generated Content for Paged Media 在页面中使用印刷时使用的布局方式

在HTML中使用CSS

  • 内联样式
                
                    <li style="float: left;padding: 4px 5px 0 5px;color: black">首页</li>
                
            
  • 嵌入样式
                
                   <style type="text/css">
                       body{
                           margin: 0;
                       }
                   </style>
                
            
  • 外部样式
                
                  <link rel="stylesheet" href="xxx.css" type="text/css">
                
            

基础选择器

    CSS语法由选择器,属性和值三部分组成.

            
                选择器名字{
                    属性:值;
                    属性:值;
                }
            
        
基础选择器含义
选择器含义
* 通用元素选择器,匹配任何元素
E 标签选择器,匹配所有使用E标签的元素
.info 和 E.info class选择器,匹配所有class属性中包含info的元素
#info 和 E#info ID选择器,匹配所有ID属性等于footer的元素
  1. 通配符选择器
  2. 元素选择器
  3. 类选择器
  4. ID选择器

层次选择器

    其语法如下:

            
                选择器名称 选择符选择器名称{
                    属性:值;
                    属性:值;
                }
            
        
  • 后代选择器

后代选择器也被称为包含选择器,就是可以选择某元素的后代元素。

比如说 E F,前面E为祖先元素,F为后代元素。所表达的意思就是选择了E元素的所有后代F元素。请注意祖先元素和后代元素之间使用 一个空格隔开。这里F不管是E元素的子元素或者是孙元素或者更深层次的关系,都将被选中。

  • 子选择器

子选择器只能选择某元素的子元素。

比如说E>F,其中E为父元素,F为子元素,其中E>F所表示的是选择了E元素下的所有子元素F。和后代选择器(E F) 不同,E>F仅选择E元素下的F子元素,更深层次的F元素则不会被选择。

  • 相邻兄弟选择器

相邻兄弟选择器可以选择紧接在另一元素后的元素,而且两者需具有一个相同的父元素。

比如E+F,E和F元素具有一个相同的父元素,而且F元素在E元素后面且紧相邻,这样就可以使用相邻兄弟选择器来选择F元素。

  • 通用兄弟选择器

通用兄弟选择器是CSS3新增的选择器,将选择某元素后面的所有兄弟元素,通用兄弟元素需要在同一个父元素之中。

比如E~F,E和F元素是属于同一父元素之内,并且F元素在E元素之后,那么E~F选择器将选择E元素后面的所有F元素。

伪类选择器

伪类说明
:active 设置a对象在被用户激活时(在鼠标单击与释放之间发生的事件)时的样式
:visited 设置a对象在其链接地址已被访问过时的样式
:focus 设置元素获取焦点时的样式
:first-chilld 设置元素的第一个子对象的样式
:lang 设置对象使用特殊语言的内容的样式

属性选择器

            
                元素名字[元素类型=“类型名字”]:选择器名字{
                    属性:值;
                    属性:值;
                }
            
        
  • [att=val] 指定特定名字的元素;
  • [att*=val] 匹配val*的元素;
  • [att^=val] 匹配val开头的元素,比如id为val1,等;
  • [att$=val] 匹配val结尾的元素,比如id为1213val等;
  • [att|=val] 匹配val开头的元素;

文本样式

文本样式
属性描述
color 设置文本颜色
text-indent 缩进元素中文本的首行
line-height 设置行高
letter-spacing 设置字符间距
text-aline 对齐元素中的文本
text-decoration 向文本添加修饰
text-transform 控制元素中的字母
text-shadow 设置文本阴影
white-space 设置元素中空白的处理方式
word-spacing 设置字间距
unicode-bidi 设置文本方向
direction 设置文本方向
first-letter 实现文本首字下沉效果

字体样式

字体样式
属性描述
font 简写属性,作用是把所有针对字体的属性设置在一个声明中
font-family 设置字体系列
font-size 设置字体的尺寸
font-size-adjust 当首选字体不可用时,对替换字体进行智能缩放
font-stretch 对字体进行水平拉伸
font-style 设置字体风格
font-variant 以小型大写字体或者正常字体显示文本
font-weight 设置字体的粗细

盒模型

  • 外边距:margin
  • 内边距:padding
  • 边框属性:border

盒子的属性

overflow的属性值
属性值描述
visible 默认值。内容不会被修剪,会呈现在元素框之外
hidden 内容会被修剪,并且其余内容是不可见的
scroll 内容会被修剪,但浏览器会显示滚动条以便查看其余内容
auto 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容
inherit 规定应该从父元素继承overflow属性的值
overflow-x和overflow-y的属性值
属性值描述
visible 不修剪内容,可能会显示在内容框之外
hidden 裁减内容--不提供滚动机制
scroll 裁减内容--提供滚动机制
auto 如果溢出框,则应该提供滚动机制
no-display 如果内容不适合内容框,则删除整个框
no-content 如果内容不适合内容框,则隐藏整个内容
text-overflow的属性值
属性值描述
clip 修剪文本
ellipsis 显示省略号来代表被修剪的文本
string 使用给定的字符串来代表被修饰的文本
  • 自由缩放
resize的属性值
属性值描述
none 用户无法调整元素的尺寸
both 用户可调整元素的高度和宽度
horizontal 用户可调整元素的宽度
vertical 用户可调整元素的高度
inherit 继承父级元素的resize的属性值
  • 外轮廓
外轮廓的属性值
属性值描述
outline-color 规定边框的颜色
outline-style 规定边框的样式
outline-width 规定边框的宽度
outline-offset 规定外轮廓的偏移位置的数值
inherit 继承父级元素的outline的属性值
outline-style的属性值
属性值描述
none 默认。定义无轮廓
dotted 定义点状的轮廓
dashed 定义虚线轮廓
solid 定义实线轮廓
double 定义双线轮廓。双线的宽度等同于outline-width的值
groove 定义3D凹槽轮廓。此效果取决于outline-color值
ridge 定义3D凸槽轮廓。此效果取决于outline-color值
inset 定义3D凹边轮廓。此效果取决于outline-color值
ridge 定义3D凸边轮廓。此效果取决于outline-color值
inherit 规定应该从父级元素继承轮廓样式的设置
outline-width的属性值
属性值描述
thin 规定细的轮廓
medium 默认。规定中等的轮廓
thick 规定粗的轮廓
length 允许你规定轮廓粗细的值(只能为正值)
inherit 规定应该从父元素继承轮廓宽度的设置
  • 阴影
box-shadow的属性值
属性描述
h-shadow 必需。水平阴影的位置。允许负值
v-shadow 必需。垂直阴影的位置。允许负值
blur 可选。模糊距离
spread 可选。阴影的尺寸
color 可选。阴影的颜色
inset 可选。将外部阴影(outset)改为内部阴影

背景属性

  • 背景的基本属性
背景的基本属性
属性描述
background-color 设置元素的背景颜色
background-image 把图像设置为背景
background-repeat 设置对象的背景图片是否平铺
background-attachment 背景图像是否固定或者随着页面的其余部分滚动
background-position 设置背景图像的起始位置
background 简写属性,作用是将背景属性设置在一个声明中
CSS3新增的背景属性
属性描述
background-clip 规定背景的绘制区域
background-origin 规定背景图片的定位区域
background-size 规定背景图片的尺寸
background-break 规定内联元素的背景图像进行平铺时的循环方式

定位与布局

定位与布局的基本属性

  • 基本属性
定位与布局的基本属性
属性描述
margin 在一个声明中设置所有的外边距属性
padding 在一个声明中设置所有的内边距属性
bottom 设置定位元素下外边距边界与其包含块下边界之间的位移
clear 规定元素的哪一侧不允许有其他浮动元素
clip 剪裁绝对定位元素
cursor 规定要显示的光标的类型(形状)
display 规定元素应该生成的框的类型
float 规定框是否浮动
overflow 规定当内容溢出元素框时发生的事情
position 规定元素的定位类型
vertical-align 设置元素的垂直对齐方式
visibility 规定元素是否可见
z-index 设置元素的堆叠顺序
  • 定位布局
    1. static:static为position的默认属性值,没有定位,元素出现在正常流中(忽略top,bottom,left,right或者z-index声明)
    2. absolute:absolute可用于生成绝对定位的元素,相对于static定位外的第一个父元素进行定位。元素位置通过left,top,right,bottom属性进行设置。
    3. fixed:fixed可用于生成固定定位的元素,即相对于浏览器窗口进行定位。元素的位置通过top,bottom,right,left进行定义。
    4. relative:relative可用于生成相对定位的元素,相对于其正常位置进行定位。
    5. inherit:inherit用于从父元素继承position属性的值。

多列布局

多列布局的基本属性
属性描述
column-count 规定元素应该被分隔的列数
column-fill 规定如何填充列
column-gap 规定列之间的间隔
column-rule 设置所有column-rule-*属性的简写属性
column-rule-color 规定列之间规则的颜色
column-rule-style 规定列之间规则的样式
column-rule-width 规定列之间规则的宽度
column-span 规定元素应该横跨的列数
column-width 规定列的宽度
columns 设置column-width和column-count的简写属性

推荐阅读