网页前端之CSS学习记录总结篇
标签:
块级标签block:div, p, h1-h6, ul, ol,li, dl, dt, dd,table,tr等,独占一行,可以设置宽高,默认是父标签的100%;
行内标签inline:a,span ,strong,i,u,em等,在一行内显示,不可以设置宽高,默认是字体的大小;
p标签自带边距margin 16px;body是8px;
display将标签转化为行内或者块级标签;
行内块标签inline-block:在一行显示,可以设置宽高,如input,image,textarea,td标签
在网页中,行内转块和行内块是非常实用的;
块级标签可以嵌套其他的,如div包罗万象,但是P标签尽量不要去嵌套div,浏览器渲染会将两标签独立;
行内标签不要嵌套块级标签,可以嵌套行内块标签,如a标签嵌套img标签;
当行高line-height等于高度height时,文本会垂直居中(上下padding要相同);
text-align:center 水平居中
text-decoration:none 无文本装饰,去除a标签的下划线,underline 下划线,overline上划线,linethrough删除线
del也是删除线;
a标签要嵌套img则应将a转化为行内块;
高级选择器:
子代选择器 #id>box{};只限于儿子们
后代选择器 #id box{}; div div p{} ; div p .class_name{} ;
交集选择器 div.active{} 没空格哦,选择的是类名为active的div,不是其他的div,
并集(组合)选择器 p,yl,ol,body{margin:0;padding:0},即重置样式;
兄弟选择器 h1+p{} h1下面的紧挨着h1的p标签,也可组合使用 #test>h1+p{}
伪类选择器
属性选择器 a[title]{font-size:30px;},选择了所有具有title属性的a元素,并将字体大小设置为30px;
a[title="lyf"]{color:Red;}选择title值为lyf的a元素,并将字体颜色设置为红色;
css基础选择器:
#id{}:id选择器,id唯一
.类名{}:类选择器,可以重复类名,类名也可由多个名称中间加空格组成
标签{}:标签选择器,比如a标签去下划线
尽可能的用class,除非极特殊的情况可以用id,class属性交给css使用,id属性交给js使用。
盒子模型:
padding的值如果是两个,则表示上下,左右,三个表示上,左右,下,四个表示上右下左,顺时针方向;width和heigth是指内容的宽度和高度;margin:外边距padding 就是内容与边框的空隙。而margin则是模块与模块的空隙
,一个盒子模型的实际宽度为:左右margin+左右border+左右padding+内容宽度width;
子盒子水平居中:
子盒子是有宽度的,则子盒子直接设置margin :0 auto可居中;span可先转为块或行内块,再设置宽,再margin :0 auto;
父盒子设置text-align:center,子盒子span直接居中,子盒子div转为行内块或者行内后可居中;
子绝父相来调节子盒子偏移量水平居中;
父盒子设置display: flex;justify-content: center;可实现子盒子居中。
子盒子垂直居中:
子绝父相来调节子盒子偏移量垂直居中;
父盒子设置display: flex;align-items: center;
子盒子水平垂直居中:
父盒子设置display:flex;子盒子设置margin:auto;可实现水平垂直居中。
a标签有4种伪类(即对应四种状态),如下:
:link “链接”:超链接点击之前
:visited “访问过的”:链接被访问过之后,不一定是本页面访问过,之前访问过,留在缓存里的都认为是访问过
:hover “悬停”:鼠标放到标签上的时候
:active “激活”: 鼠标点击标签,但是不松手时。
在 CSS 定义中,a:hover 必须被置于 a:link 和 a:visited 之后,才是有效的。
在 CSS 定义中,a:active 必须被置于 a:hover 之后,才是有效的。
伪类名称对大小写不敏感。
a{}和a:link{}的区别:
a{}定义的样式针对所有的超链接(包括锚点)。
a:link{}定义的样式针对所有写了href属性的超链接(不包括锚点)。
如果同时需要,我们一定要将a标签写在前面,将:link、:visited、:hover、:active这些伪类写在后面。
伪类:
:focus伪类是某个标签获得焦点时的样式(比如某个输入框获得焦点);
:first-child 伪类:可以使用 :first-child 伪类来选择元素的第一个子元素。
p:first-child {color: red;} 选择器匹配任何元素的子元素中的第一个p 元素;
p > i:first-child {font-weight:bold;} 选择器匹配所有 <p> 元素中的第一个 <i> 元素;
p:first-child i {color:blue;} 选择器匹配任何元素的子元素中的第一个p 元素下的所有 <i> 元素;
伪元素:
::first-line 伪元素用于向文本的首行设置特殊样式。只能用于块级元素。
p:first-line{color:#ff0000;font-variant:small-caps;}
::first-letter 伪元素用于向文本的首字母设置特殊样式:
p.article:first-letter{color: #FF0000;}
:before伪元素可以在元素的内容前面插入新内容:
h1:before{content:url(logo.gif);}
:after伪元素可以在元素的内容之后插入新内容。
display:none隐藏标签不占位置,visibility:hidden占位置;
文本缩进:text-indent:2em;
盒子边框border:
border: 3px solid blue;
border-width:3px 5px 7px 9px; 盒子各边宽度,顺时针
border-style:solid dotted dashed double; 实线,点线,虚线,双线
border-color:blue;
border-top:1px solid #000;
什么是浮动float?
脱离文档流,也就是将元素从普通的布局排版中拿走,其他盒子在定位的时候,会当做脱离文档流的元素不存在而进行定位。
浮动可以使得元素按指定方向排列,直到遇到父元素的边界或另一个浮动元素停止。
浮动的特性有哪些?
1.脱标;2.贴边;3.字围;4.收缩;5.浮动后不区分行内、块状元素,都能够设置宽高。
所谓收缩:一个浮动元素如果没有设置width,那么自动收缩为文字的宽度(这点和行内元素很像)。
浮动所带来的问题:
浮动的框可以左右移动,直至它的外边缘遇到包含框或者另一个浮动框的边缘。浮动框不属于文档中的普通流,当一个元素浮动之后,不会影响到块级框的布局而只会影响内联框(通常是文本)的排列,正是因为浮动的这种特性,导致本属于普通流中的元素浮动之后,包含框内部由于不存在其他普通流元素了,也就表现出高度为0(高度塌陷)。在实际布局中,往往这并不是我们所希望的,所以需要清除浮动元素,使其包含框表现出正常的高度。
清除浮动的方式:
父盒子设置固定高度 :应用:网页中盒子固定高度区域,比如固定的导航栏。缺点:使用不灵活,后期不易维护
内墙法: 在浮动元素的后面加一个空的块级元素 ,缺点:结构冗余
伪元素清除法:内墙法的升级,避免冗余的块级元素出现,在需要清除浮动的盒子里添加类的值clearfix即可。
.clearfix:after{
content:'';
display: block;
clear: both;
}
overflow:hidden:
当一个元素设置了overflow:hidden|auto|scroll属性之后,它会形成一个BFC(Block Formatting Context)区域,叫做块级格式化上下文。BFC只是一个规则。它对浮动定位都很重要。浮动定位和清除浮动只会应用于同一个BFC的元素。浮动不会影响其它BFC中元素的布局,而清除浮动只能清除同一BFC中在它前面的元素的浮动。
总结:只要我们让父盒子形成BFC的区域,那么它就会清除区域中浮动元素带来的影响。
但是当我们对浮动元素的父盒子设置了overflow:hidden之后,确实能够使得父盒子有了高度,即最大的浮动元素高度,然而浮动元素的内容若超出了最大高度时就会被隐藏哦!也需谨慎使用!
BFC布局规则:
1.内部的Box会在垂直方向,一个接一个地放置。
2.Box垂直方向的距离由margin决定。属于同一个BFC的两个相邻Box的margin会发生重叠
3.每个元素的margin box的左边, 与包含块border box的左边相接触(对于从左往右的格式化,否则相反)。即使存在浮动也是如此。
4.BFC的区域不会与float 元素重叠。
5.BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。反之也如此。
6.计算BFC的高度时,浮动元素也参与计算
相对定位position:relative:
如果没有定位偏移量,对元素本身没有任何影响;
不使元素脱离文档流;
偏移后会覆盖其他元素,但是原来的坑还占着。
绝对定位position: absolute:
脱离文档流;
使得行内元素能设置宽高(让行内具备块特性);
使得块元素默认宽根据内容决定(让块具备行内特性);
如果前辈元素没有relative,absolute,fix中的任一个,则定位基准为body;
如果前辈元素有relative,absolute,fix中的任一个,则定位基准为最靠近自身的那个拥有定位的前辈元素。
应用较多的为“子绝父相”,子元素为absolute,父元素为relative。
固定定位:
它跟绝对定位基本相似,只有一个主要区别:绝对定位固定元素是相对于html根元素或其最近的定位祖先元素,而固定定位固定元素则是相对于浏览器视口本身。这意味着你可以创建固定的有用的网页效果,比如固定导航栏、回到顶部按钮,小广告等。
z-index:
当元素出现压盖时,是什么决定哪些元素出现在其他元素的上面呢?是z-index.使用z-index有以下几个规则:
- z-index只应用在定位的元素,默认z-index:auto;
- z-index取值为整数,数值越大,它的层级越高
- 如果元素设置了定位,没有设置z-index,那么谁写在最后面的,表示谁的层级越高。
- 从父现象。通常布局方案我们采用
子绝父相,比较的是父元素的z-index值,哪个父元素的z-index值越大,表示子元素的层级越高。
border-radius:
border-radius:15px 同时将每个圆角的“水平半径”(hrizontal radius)和“垂直半径”(vertical radius)都设置为15px;

border-radius可以同时设置1到4个值。如果设置1个值,表示4个圆角都使用这个值。如果设置两个值,表示左上角和右下角使用第一个值,右上角和左下角使用第二个值。如果设置三个值,表示左上角使用第一个值,右上角和左下角使用第二个值,右下角使用第三个值。如果设置四个值,则依次对应左上角、右上角、右下角、左下角(顺时针顺序)。
border-radius还可以用斜杠设置第二组值。这时,第一组值表示水平半径,第二组值表示垂直半径。第二组值也可以设置1到4个值,应用规则与第二组值相同。
border-radius:10px 20px 30px / 40px 50px;
box-shadow 阴影 :
box-shadow:3px 3px 20px red inset 表示水平竖直方向为3px,模糊距离为20px,阴影颜色为红,内阴影。有时盒子弄个阴影还挺好看的。我的这个博客页面就有很多阴影。
未完待续...
网页前端之CSS学习记录总结篇的更多相关文章
- 网页前端之JavaScript学习记录总结篇
咔咔咔咔咔咔扩扩扩扩扩扩扩扩扩扩
- HTML与CSS学习记录
title: HTML与CSS学习记录 toc: true date: 2018-09-10 14:04:59 <HTML与CSS进阶教程读书笔记> HTML基础知识 HTML与XHTML ...
- Elasticsearch学习记录(入门篇)
Elasticsearch学习记录(入门篇) 1. Elasticsearch的请求与结果 请求结构 curl -X<VERB> '<PROTOCOL>://<HOST& ...
- 前端html与css学习笔记总结篇(超详细)
第一部分 HTML 第一章 职业规划和前景 职业方向规划定位: web前端开发工程师 web网站架构师 自己创业 转岗管理或其他 web前端开发的前景展望: 未来IT行业企业需求最多的人才 结合最新的 ...
- Vue学习记录第一篇——Vue入门基础
前面的话 Vue中文文档写得很好,界面清爽,内容翔实.但文档毕竟不是教程,文档一上来出现了大量的新概念,对于新手而言,并不友好.个人还是比较喜欢类似于<JS高级程序设计>的风格,从浅入深, ...
- 我的MySQL学习记录 完结篇DAY05~
课程已全部学完,Redis\mongoDB 的学习也会提上日程啦~剩下的最大的最大的问题在于练习,大量的练习,后期会发我的学习记录. 小记:也不知道是不是加强针的缘故,老是拉肚子,记录彻底感冒的一天, ...
- 前端css学习记录
参考资料:CSS权威指南(第三版)中文版 核心要点: HTML负责标记文档的结构(HyperText Markup Language),结构化语言. CSS 负责表现文档的样式(Cascading S ...
- PHP学习记录第一篇:Ubuntu14.04下LAMP环境的搭建
最近一段时间会学习一下PHP全栈开发,将会写一系列的文章来总结学习的过程,以自勉. 第一篇记录一下LAMP环境的安装 0. 安装Apache Web服务器 安装之前先更新一下系统 sudo apt-g ...
- Git学习记录-基本命令篇
目录 网页在线练习地址 https://learngitbranching.js.org/ 1.git commit Git 仓库中的提交记录保存的是你的目录下所有文件的快照,就像是把整个目录复制,然 ...
随机推荐
- Day 08 可变与不可变对象/列表与字典内置方法
目录 可变对象与不可变对象 可变对象 不可变对象 列表的内置方法 字典内置方法 可变对象与不可变对象 可变对象 对象指向的内存中的值会改变,当更改这个变量的时候,还是指向原来内存中的值,并且在原来的内 ...
- API接口访问频次限制 / 网站恶意爬虫限制 / 网站恶意访问限制 方案
API接口访问频次限制 / 网站恶意爬虫限制 / 网站恶意访问限制 方案 采用多级拦截,后置拦截的方式体系化解决 1 分层拦截 1.1 第一层 商业web应用防火墙(WAF) 直接用商业服务 传统的F ...
- 索引与Order By
Order By 将对结果进行排序,这里的排序最大的特点是资源密集型,尽管多数时候它同时也是CPU密集型的.数据库在进行排序时,必须缓冲临时结果,读取到所有输入,并在完整的排序操作后才能产生第一个输出 ...
- 用心整理 | Spring AOP 干货文章,图文并茂,附带 AOP 示例 ~
Spring AOP 是 Java 面试的必考点,我们需要了解 AOP 的基本概念及原理.那么 Spring AOP 到底是啥,为什么面试官这么喜欢问它呢?本文先介绍 AOP 的基本概念,然后根据 A ...
- python基础入门 字典
字典 字典---->dict 字典是无序的,可变的 关联性强 键值对 键:使用不可变的数据类型(可哈希),键是唯一的 值:可以任意 定义一个字典 dic = {}#定义字典 字典的增删改查 ...
- oracle管理角色和权限
介绍 这一部分主要看看oracle中如何管理权限和角色,权限和角色的区别在哪里. 当刚刚建立用户时,用户没有任何权限,也不能执行任何操作.如果要执行某种特定的数据库操作,则必需为其授予系统的权限:如果 ...
- ansible 基础命令
ansible 命令总结 1. Ad-HOC: 适合临时执行任务2. Playbook: 适合一些复杂的部署和配置环境 一 . Ad-HOC: 适合临时执行任务ansible-doc -l 查看ans ...
- NodeJS2-6环境&调试----debug
13_debug.js //测试的脚本 function test1() { const a = parseInt(Math.random() * 10); const b = parseInt(Ma ...
- GHOST CMS - Ghost Handlebars主题 Ghost Handlebars Themes
Ghost Handlebars主题 Ghost Handlebars Themes Ghost主题层被设计为让开发人员和设计人员能够灵活地构建由Ghost平台支持的自定义发布 The Ghost t ...
- 常见的 由于未调整服务器 ulimit 而引起的内存溢出问题
原文内容来自于LZ(楼主)的印象笔记,如出现排版异常或图片丢失等问题,可查看当前链接:https://app.yinxiang.com/shard/s17/nl/19391737/e3bb62c9-9 ...