We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
《前端小课──用好HTML》的读书笔记。
外部引入:通过 link 的方式引用 CSS 样式
<head> <link rel="stylesheet" href="style.css"> </head>
内部引入,在 HTML 中的 head 位置添加 style 标签
<head> <style> .title { color: red; font-size: 18px; } </style> </head>
内联样式
<p style="color: red; font-size: 18px;">内容</p>
white-space
normal
nowrap
overflow
overflow-x
overflow-y
/* 默认值。内容不会被修剪,会呈现在元素框之外 */ overflow: visible; /* 内容会被修剪,并且其余内容不可见 */ overflow: hidden; /* 内容会被修剪,浏览器会显示滚动条以便查看其余内容 */ overflow: scroll; /* 由浏览器定夺,如果内容被修剪,就会显示滚动条(默认值) */ overflow: auto; /* 规定从父元素继承overflow属性的值 */ overflow: inherit;
/*清除标签默认边距*/ * { margin: 0; padding: 0; }
注意:写 CSS 代码的时候,即使某个属性写错,浏览器也不会报错,只会忽略无法识别的 CSS 样式。
标签选择器: 如 p , li 等
p
li
class 选择器:如 .first
.first
ID 选择器: #firstid
#firstid
通用选择器: * ,作用于所有的标签
*
属性选择器:根据属性来匹配HTML元素
/* 匹配所有使用属性 "lefe" 的元素 */ [lefe] { color: green; } /*匹配所有使用属性为 "lefe",且值为 liquid 的元素*/ [lefe="liquid"] { background-color: goldenrod; } /*匹配所有使用属性为 "lefe",且值包含 spicy 的元素*/ [lefe~="spicy"] { color: red; }
类似于“正则表达式”的属性选择器,比如: [attr^=val] 匹配以 val 开头的元素, [attr$=val] ,匹配以 val 结尾的元素, [attr*=val] 匹配包含 val 的字符串的元素
[attr^=val]
[attr$=val]
[attr*=val]
伪选择器(pseudo-selectors):它包含伪类(pseudo-classes)和伪元素(pseudo-elements)。这类选择器不是真正意义上的选择器,它作为选择器的一部分,起到选择器匹配元素的限定条件。
/* 匹配超链接样式 */ a { color: blue; font-weight: bold; } /* 访问后的状态 */ a:visited { color: yellow; } /* 鼠标悬停、点击、聚焦时的样式 */ a:hover, a:active, a:focus { color: darkred; text-decoration: none; }
伪元素(pseudo-elements)选择器,它以“ :: ” 为标识符
p::first-letter{ font-weight: bold; } p::first-line{ font-size: 3em; }
/* Selects any <p> that is the first element among its siblings p:first-child 选择的是孩子节点中第一个元素是 p 的元素 */ p:first-child { color: lime; }
组合选择器(Combinators): 这种选择器可以作用于多个 HTML 元素,有多种组合方式
A B {}
A > B {}
A + B {}
A ~ B {}
A, B {}
伪类选择器:作用是选中某个元素中符合某些条件的元素。作用于现有元素,相当于给现有元素添加某些属性。使用单个冒号 :
:
:first-child :not :nth-child() :only-child() :root() :disabled
伪元素选择器:作用就是给现有元素添加某些新的内容,就好比给某个元素添加了一个新的标签,使用2个冒号 ::
::
::first-letter 表示对首字母进行操作 ::first-line 对首行内容进行操作 ::before 给已知元素的前面拼接新的内容 ::after 给已知元素的后面拼接新的内容
@规则在CSS中用于传递元数据、条件信息或其他描述性信息。它们以at符号(@)开头,后跟一个标识符来说明它是什么类型的规则,然后是某种类型的语法块,以分号(;)结尾。由标识符定义的每种类型的 at 规则都有其自己的内部语法和语义。
@charset and @import (metadata) @media or @document (条件,嵌套申明) @font-face (描述信息)
下面这个 CSS 只适用于屏幕超过 800px 的设备:
@media (min-width: 801px) { body { margin: 0 auto; width: 800px; } }
@media 语法
@media
@media mediaType and|not|only (media feture) { // css }
border-width
border-style
border-color
font-size: 文字大小;
font-weight:字重,字体粗细,可以这样理解吧;
color:字体颜色;
text-align:字体对齐方式;
text-decoration: 文字修饰,比如下划线,删除线;
letter-spacing: 文字间距;
line-height: 行高;
font-style: 文字样式,比如斜体;
两种盒子类型
通过 display 修改盒子的显示方式
display
.title { display: inline; }
盒模型
模式
标准的盒子模型
对于这种盒子模式,给它设置的 width 和 height 是 content 的宽高,当给盒子添加 padding 和 border 的时候,会增加盒子的整体大小。「外边距不会计入盒子的大小,它只是表示外部的边距」。
诡异盒子模型(The alternative CSS box model)
对于这种盒子模式,给它设置的 width 和 height 是盒子的宽高,也就是说内容 content 的宽需要减去 border 和 padding 的宽。
谷歌浏览器默认的是标准的盒模型,可以通过:
box-sizing: border-box;
来修改盒模型为诡异盒模型。
display:inline
display:block
display:inline-block
这种布局方式结合了 inline 和 block 这两种元素的特性,它与块级元素不同的是:元素不会单独占用一行;相同的是:可以使用 width 和 height,可以通过 padding、margin 和 border 来控制元素的显示位置。
说白了就是除了不会单独占一行,其余的与块级元素一致。
display:none 隐藏元素
display:none
display:flex 一维
display:flex
display:grid 二维
display:grid
设置背景图
background-color: antiquewhite; background-image: url('./logo_suyan.png'); background-repeat: no-repeat; background-position: center; background-size: cover;
top | left | bottom | right
no-repat
repeat
repat-x
img 标签
img
行内(inline)元素
<img class="logo" src="./images/1.png" alt="图片">
.logo { /* 表示设置图片的宽度,如果只设置宽度,那么 img 标签的高度会根据图片的大小进行等比缩放。 只设置高度也是同样的道理。 如果即设置了高度又设置了宽度,那么图片的高度和宽度即为设置的宽高。 */ width: 30px; /* 指定行内元素的垂直对齐方式 */ vertical-align: middle; }
text-overflow 和 -webkit-line-clamp
.singal-line { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.two-line { display: -webkit-box; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
text-overflow:只对块级元素起作用,表示对超出指定区域的内容该如何显示
-webkit-box:webkit 的 CSS 扩展属性
.myClass, [type=chekbox], :only-of-type
#myDiv
style
!important
g
z
y
x
主要有两种方式
@keyframes
.move-box-animation { /* animation: name duration timing-function delay iteration-count direction fill-mode; */ /* 名字,为 @keyframes 的名字 */ animation-name: move; /* 动画的时间 */ animation-duration: 5s; /* 动画执行函数 */ animation-timing-function: ease-in-out; /* 动画延迟时间 */ animation-delay: 1s; /* 动画重复次数 */ animation-iteration-count: 10; /* 动画的方向,先正向后逆向 */ animation-direction: alternate; /* 动画执行后的填充模式 */ animation-fill-mode: backwards; /* 动画的运行状态 */ animation-play-state: running; } @keyframes move { 0% { left: 0; top: 0; } 25% { left: 100px; top: 0; } 50% { left: 100px; top: 100px; } 75% { left: 0; top: 100px; } 100% { left: 0; top: 0; } }
.move-transition { /* transition-property: all; */ transition-property: background-color, height, width; transition-duration: 1.8s, 1.0s, 1.0s; transition-delay: 0.1s; transition-timing-function: linear; }
less,sass
GitHub repo: qiwihui/blog Follow me: @qiwihui Site: QIWIHUI
GitHub repo: qiwihui/blog
Follow me: @qiwihui
Site: QIWIHUI
The text was updated successfully, but these errors were encountered:
No branches or pull requests
《前端小课──用好HTML》的读书笔记。
使用css三种方式
外部引入:通过 link 的方式引用 CSS 样式
内部引入,在 HTML 中的 head 位置添加 style 标签
内联样式
块级标签和 inline 标签
white-space
属性作用就是告诉浏览器遇到「空格」该如何处理,这里的空格不是单纯意义上的空格。normal
nowrap
overflow
属性overflow-x
,overflow-y
清除标签默认边距
CSS中的选择器
注意:写 CSS 代码的时候,即使某个属性写错,浏览器也不会报错,只会忽略无法识别的 CSS 样式。
标签选择器: 如
p
,li
等class 选择器:如
.first
ID 选择器:
#firstid
通用选择器:
*
,作用于所有的标签属性选择器:根据属性来匹配HTML元素
类似于“正则表达式”的属性选择器,比如:
[attr^=val]
匹配以 val 开头的元素,[attr$=val]
,匹配以 val 结尾的元素,[attr*=val]
匹配包含 val 的字符串的元素伪选择器(pseudo-selectors):它包含伪类(pseudo-classes)和伪元素(pseudo-elements)。这类选择器不是真正意义上的选择器,它作为选择器的一部分,起到选择器匹配元素的限定条件。
伪元素(pseudo-elements)选择器,它以“ :: ” 为标识符
组合选择器(Combinators): 这种选择器可以作用于多个 HTML 元素,有多种组合方式
A B {}
: A 元素的所有后代元素 B 都会起作用。A > B {}
: A 元素的直接子节点会起作用,也就是只适用于 A 节点的第一层所有的子节点。A + B {}
: 匹配 A 的下一个兄弟节点,AB具有相同的父节点,并且 B 紧跟在 A 的后面;A ~ B {}
: B是 A 之后的任意一个(所有)兄弟节点。A, B {}
:A 和 B 元素具有同一规则的 CSS 样式,不同元素使用逗号隔开。伪选择器
伪类选择器:作用是选中某个元素中符合某些条件的元素。作用于现有元素,相当于给现有元素添加某些属性。使用单个冒号
:
伪元素选择器:作用就是给现有元素添加某些新的内容,就好比给某个元素添加了一个新的标签,使用2个冒号
::
@规则
@规则在CSS中用于传递元数据、条件信息或其他描述性信息。它们以at符号(@)开头,后跟一个标识符来说明它是什么类型的规则,然后是某种类型的语法块,以分号(;)结尾。由标识符定义的每种类型的 at 规则都有其自己的内部语法和语义。
下面这个 CSS 只适用于屏幕超过 800px 的设备:
@media
语法border
border-width
:表示边框的宽度,可以分别设置上下左右边框为不同的宽度,比如 border-bottom-width;border-style
: 表示边框的样式,可以分别设置上下左右边框为不同的样式,比如 border-bottom-style,可以取下面几种值:node、hidden、dotted、dashed、solid 等;border-color
:表示边框的颜色,可以分别设置上下左右边框为不同的颜色。一些文字属性
font-size: 文字大小;
font-weight:字重,字体粗细,可以这样理解吧;
color:字体颜色;
text-align:字体对齐方式;
text-decoration: 文字修饰,比如下划线,删除线;
letter-spacing: 文字间距;
line-height: 行高;
font-style: 文字样式,比如斜体;
盒子模型
两种盒子类型
通过
display
修改盒子的显示方式盒模型
模式
标准的盒子模型
对于这种盒子模式,给它设置的 width 和 height 是 content 的宽高,当给盒子添加 padding 和 border 的时候,会增加盒子的整体大小。「外边距不会计入盒子的大小,它只是表示外部的边距」。
诡异盒子模型(The alternative CSS box model)
对于这种盒子模式,给它设置的 width 和 height 是盒子的宽高,也就是说内容 content 的宽需要减去 border 和 padding 的宽。
谷歌浏览器默认的是标准的盒模型,可以通过:
来修改盒模型为诡异盒模型。
display
display:inline
display:block
display:inline-block
这种布局方式结合了 inline 和 block 这两种元素的特性,它与块级元素不同的是:元素不会单独占用一行;相同的是:可以使用 width 和 height,可以通过 padding、margin 和 border 来控制元素的显示位置。
说白了就是除了不会单独占一行,其余的与块级元素一致。
display:none
隐藏元素display:flex
一维display:grid
二维使用图片
设置背景图
top | left | bottom | right
,在某个边缘的位置,另一个维度为 50%。比如 top,背景图的起始位置为顶部,在X轴方向为 50%,居中显示;no-repat
不重复,repeat
重复,repat-x
X轴上重复,还有其它关键字。img
标签行内(inline)元素
显示多行文字
text-overflow 和 -webkit-line-clamp
text-overflow:只对块级元素起作用,表示对超出指定区域的内容该如何显示
-webkit-box:webkit 的 CSS 扩展属性
CSS权重
*
:通用选择器,权重最低,就是 0,第 1 张图就是此意;.myClass, [type=chekbox], :only-of-type
: 类、属性、伪类选择器。第 5 张图,一个类选择器,权重值表示为 0-1-0;5-15张图能看懂了吧;#myDiv
:id选择器,一条鲨鱼,权重比较高,权重值为 1-0-0;`style
:权重值更高,权重值为 1-0-0-0;!important
: 无敌,我是老大,告诉浏览器必须使用我定义的属性;g
:直接在元素中使用属性,权重最高,可以看做 1-0-0-0;z
:id选择器,权重次子,可以看做 0-1-0-0;y
:类、伪类、属性选择器,权重低,可以看做 0-0-1-0;x
:元素、伪元素选择器,权重最低,可以看做 0-0-0-1;动画
主要有两种方式
@keyframes
定义的名字。@keyframes
指定某一帧的动画如何变化,可通过 % 来控制各个阶段的属性值长度单位
易复用、易维护、结构清晰的 CSS
less,sass
The text was updated successfully, but these errors were encountered: