css-1

CSS语法 

 

常用选择器

元素选择器

根据元素名称来选择 HTML 元素。

p {
  text-align: center;
  color: red;
}

id选择器 #

使用 HTML 元素的id 属性来选择特定元素

id 唯一且不重复

<p id="para1">少小离家老大回</p>

 #para1{
    color: red;
}

类选择器 .

选择有特定 class 属性的 HTML 元素

class可以有多个

<p class="para2">乡音无改鬓毛衰</p>

.para2{
    color:yellow;
}

还可以指定只有特定的 HTML 元素会受类的影响

p.center {
  text-align: center;
  color: red;
}
在这个例子中,只有具有 class="center" 的 <p> 元素会居中对齐:

通配选择器 *

通用选择器(*)选择页面上的所有的 HTML 元素。

* {
  text-align: center;
  color: blue;
}

分组选择器(并集 A,B)

对选择器进行分组,以最大程度地缩减代码。

对选择器进行分组,用逗号来分隔每个选择器

同时设置h1,h2,p的行间距和颜色
h1, h2, p {
  text-align: center;
  color: red;
}

复合选择器

交集选择器 (交集 AB)

语法

  • 选择器1选择器2{}
  • 元素选择器放在最前边
<div class="red">我是div</div>
<p class="red">我是p元素</p>

交集选择器:将class为red的div字体颜色设置为红色

div.red{
    color: red;
}

关系选择器

几种关系

  • 父元素
    • 直接包含子元素的元素
  • 子元素
    • 直接被父元素包含的元素
  • 祖先元素
    • 直接或间接包含后代元素的元素
    • 一个元素的父元素也是他的祖先元素
    • 祖先元素可能会有很多
  • 后代元素
    • 直接或间接被祖先元素包含的饿元素
    • 子元素也是后代元素
  • 兄弟元素
    • 拥有相同父元素的元素

父子 (父>子)

选中指定元素下边的子元素

选中属于 <div> 元素子元素的所有 <p> 元素
div > p {
  background-color: yellow;
}

后代 (祖先 后代)

选中指定元素下边的后代

选中<div> 元素内的所有 <p> 元素
div p {
  background-color: yellow;
}

相邻兄弟 (兄+弟(最近的弟))

选中指定元素下边紧挨的兄弟元素

如果中间有隔着别的元素,则不会被选中

选中紧随 <div> 元素之后的 <p> 元素
div + p {
  background-color: yellow;
}

通用兄弟 (兄~弟(所有弟))

选中指定元素下边的所有兄弟

如果上边也有兄弟元素,则不会被选中

选中属于 <div> 元素的同级元素的所有 <p> 元素
div ~ p {
  background-color: yellow;
}

属性选择器 CSS[]

根据属性和值选取元素

  1. 选取带有指定属性的元素
CSS [attribute]
  1. 选取带有指定属性和值的元素
CSS [attribute="value"]
  1. 选取指定属性包含指定词的元素
    • 值不必是完整单词
CSS [attribute *= "value"]
  1. 选取指定属性以指定值开头的元素
CSS [attribute ^= "value"]
  1. 选取指定属性以指定值结尾的元素
CSS [attribute $= "value"]

伪类选择器 :

伪类用于描述元素的特殊状态 例如链接的访问和悬停等

  1. :first-child第一个子元素
p:first-child {
  color: blue;
}
  1. last_child最后一个子元素
p:last-child {
  color: blue;
}
  1. **nth-child(n)**第n个子元素
    • n:全选
    • 2n /even:选中偶数个
    • 2n+1 / odd:选中奇数个
选中第三个p元素
p:nth-child(3) {
  color: blue;
}

注意以上伪类都是根据所有子元素进行排序

ul>li:firstchild{
    color:red
}

<ul>
        <span>我是span</span>
        <li>第一个</li>
        <li>第二个</li>
    </ul>

此时span不会变色,第一个li也不会变色
  1. :first-of-type同类型的第一个子元素
  2. :last-of-type同类型的最后一个子元素
  3. **:nth-of-type(n)**同类型的第n个子元素
ul>li:first-of-type{
    color:red
}

<ul>
        <span>我是span</span>
        <li>第一个</li>
        <li>第二个</li>
    </ul>

此时第一个li会变色

注意以上伪类都是根据同类元素进行排序

  1. :not否定伪类,将符合条件的元素从选择器中去除
 ul>li:not(li:nth-child(3)){
    color: red;
}

<ul>
    <span>我是span</span>
    <li>第一个</li>
    <li>第二个</li>
    <li>第三个</li>
</ul>

 

a的伪类

  1. :link未访问的,正常的
a:link{
    color: aqua;
}
  1. :visited已访问的
    • 由于隐私的原因,visited这个伪类只能修改链接的颜色
a:visited{
    color: red;
}

注意1和2只适用于a标签,即a独有的

  1. :hover鼠标悬停
    • hover必须定义在link和visited之后才生效
a:hover{
    color: red;
}
  1. :active鼠标点击
    • active必须定义在hover之后才生效
a:active{
    color: red;
}

注意:3和4可以用于任何标签

伪元素选择器 ::

特殊的位置 选取元素的一部分并设置其样式 例如元素首字母、首行的样式等。

  1. ::first-letter 首字母
p::first-letter{
    color: red;
    font-size: 25px;
}
  1. ::first-line 第一行
p::first-letter{
    background-color: aqua;
}
  1. ::selection 鼠标选中的内容
::selection{
    background-color: bisque;
}
  1. ::before 元素之前
    • content不会被选中,因为是通过css设置的
h1::before {
  content: url(smiley.gif);
}
  1. ::after 元素之后
    • content不会被选中
h1::after {
  content: url(smiley.gif);
}

样式继承

  • 为一个元素设置的样式同时也会应用到他的后代元素 注意并不是所有的样式都会被继承 例如:背景相关的,布局相关的

选择器的权重

当用不同的选择器选中相同的元素,设置相同样式时,可能会发生样式冲突。应用哪个样式由选择器的优先级决定

选择器的权重(优先级)

  1. !important 会获得最高的优先级
  2. 内联样式 1000
  3. id选择器 100
  4. 类和伪类选择器 10
  5. 元素选择器 1
  6. 通配选择器 0
  7. 继承的样式没有优先级
*{
    font-size: 50px;
}
div{
    font-size: 20px;
}

<div>我是一个div
    <span>我是div中的span</span>
</div>

此时span虽然继承了div的样式字——体大小,但继承的样式没有优先级,所以span的字体大小跟随通配选择器
  1. 比较优先级时,需要将选择器的优先级进行相加,最后优先级越高,则越优先显示(分组选择器是单独计算的,不会想加)
  2. 选择器的累加不会超过其最大的数量级(即类选择器再高也不会超过id选择器)
  3. 优先级计算后相等,则优先使用靠下的样式

CSS层叠顺序

当为某个 HTML 元素指定了多个样式时,优先级为:

  1. 行内样式(在 HTML 元素中)
  2. 外部和内部样式表(在 head 部分)
    • 外部用<link rel="stylesheet" href="">连接
    • 内部用 <style></style>
    • 内部和外部引用的先后顺序不同,优先级不同,因为网页是自上而下渲染的
  3. 浏览器默认样式

单位

像素和百分比

1. 像素

  • 屏幕是由一个一个的小像素块构成的
  • 不同屏幕的像素大小不同,像素越小屏幕显示的越清晰
  • 同样的200px在不同的设备下显示效果不一样

2. 百分比

  • 设置属性值相对于父元素属性值的百分比

3. em

  • em是相对于元素自身的字体大小来计算的
  • 1em = 1fontsize
  • em会根据字体大小的改变而改变

4.rem

  • rem是相对于**根元素(即html)**的字体大小来计算

颜色

  1. 使用CSS名字来设置名字(但名字太多不方便记忆)
  2. RGB值 RGB(R,G,B)
    • 每种颜色范围 0~255
  3. rgba RGB(R,G,B,A)
    • A表示不透明值
    • A的取值范围 0~1
    • 1 表示完全不透明 0 表示完全透明
  4. 16进制的RGB值
  • 语法:#rrggbb
  • 每种颜色浓度值: 00~ff
  1. HSL
  • H:色相 0-360
  • S:饱和度(颜色浓度) 0%~100%
  • L:亮度 0%~100% (0是黑色,100是白色)
  1. HSLa 同理

文档流

  • 网页是一个多层的结构,一层摞着一层
  • 通过CSS可以为每一层设置样式
  • 作为用户只能看到最上面一层
  • 在这些层中,最下边的一层称为文档流,文档流是网页的基础
    • 元素默认在文档流中排列
    • 元素的两个状态
      • 在文档流中
      • 脱离文档流
  • 元素在文档流中特点
    • 块元素
      • 独占一行(无论宽度多宽)
      • 默认宽度=父元素的宽度
      • 默认高度=被内容撑开
    • 行内元素
      • 不独占一行,只占自身大小
      • 在页面中自左向右水平排列,如果放不下,则换行排列
      • 默认高度和宽度都是被内容撑开

盒模型

盒子的布局

  • 内容区(content)
    • 元素中所有子元素和文本内容都在内容区中排列
    • 内容区大小 width,height
  • 内边距(padding)
  • 边框(border)
  • 外边距(margin)

重要:

内容区(width,height)+内边距+边框=盒子大小

外边距决定盒子的位置

 

内边距padding

内容区和边框之间的距离。

内边距会影响盒子的大小,背景颜色会延伸到内边距

  • padding:上 右 下 左
  • padding:上 左右 下
  • padding:上下 左右
  • padding:上下左右
padding:10px 10px 10px 10px
同理
padding-top、padding-bottom、padding-left、padding-right

边框border

  1. border-width 边框宽度
    • 可以分别指定四个方向的宽度 例如:border-top-width
    • border-width:上 右 下 左
    • border-width:上 左右 下
    • border-width:上下 左右
    • border-width:上下左右
  2. border-color 边框颜色
    • 可以分别指定四个方向的颜色,剩下同理上边
  3. border-style 边框风格
    • 可以分别指定四个方向的style,剩下同理上边
    • solid实线
    • dashed虚线
    • dotted点线
    • double双边框
    • groove定义3D坡口边框
    • ridge定义3D脊线边框
    • inset定义3Dinset边框
    • outset定义3Doutset边框
    • none无边框
      • 默认值
    • hidden隐藏边框
三个属性没有顺序要求
.box1{
    border:1px solid red;
    同理
    border-top、border-bottom、border-left、border-tight
}
  1. 轮廓 outline 基础用法和border一样

轮廓不会影响可见框的大小,页面布局

outline:10px solid red

轮廓偏移:给边框与轮廓之前添加透明空间
outline-offset:15px
  1. 圆角 border-radius 用法基本同border
设置圆角的x,y轴半径大小
border-radius:10px / 10px
四个方向的圆角
border-radius:1px 2px 3px
左上:1   右上2:   右下:3    左下:2 

border-radius:50%  元素变为圆形

外边距margin

外边距不会影响盒子大小,只会影响盒子位置,即盒子和盒子之间的关系

  • margin:上 右 下 左
  • margin:上 左右 下
  • margin:上下 左右
  • margin:上下左右
margin:10px 10px 10px 10px
同理
margin-top、margin-bottom、margin-left、margin-right

margin:auto  容器水平居中

注意

  1. 默认情况下设置左边和上边的外边距会移动元素自身
  2. 设置 右边和下边则会移动其他元素
  3. margin的值是负值,则向相反方向移动
  4. 设置那个边,就想象那个边加宽了

水平方向布局

子元素在其父元素水平方向的位置有以下几个属性共同决定:

  1. margin-left
  2. border-left
  3. padding-left
  4. width
  5. padding-right
  6. border-right
  7. margin-right

子元素在父元素水平布局的必须满足: margin-left + border-left + padding-left + width + padding_right + border-right + margin_right = 父元素内容的宽度

以上等式必须满足,如果相加结果等式不成立,则等式会自动调整。

垂直方向布局

父元素内容会被子元素撑开。

注意

  • 父元素设置了固定高度,则子元素超过父元素会溢出
    • 溢出后,在父元素设置overflow:hidden,则溢出内容就不会显示
    • overflow:scroll 生成滚动条
    • overflow:auto:根据需要生成滚动条

     

  • 当父元素没有设置高度,则父元素被子元素撑开 

 

外边距的折叠

相邻垂直方向的外边距会发生重叠

  1. 兄弟元素
    • 外边距等于两者之间的较大者(两者都是正值)
    • 如果相邻的外边距一整一负,则取二者的和
    • 如果两者都为负,则取绝对值较大者 

     

  2. 父子元素(无边框)
    • 子元素会传递给父元素(上外边距),因为父子共用同一外边 
      • 解决办法1:给父元素加padding,同时修改盒子内容大小
      • 解决办法2:给父元素加边框(这样父子元素的外边距就隔开了),同时修改盒子大小 

     

     

行内元素的盒模型

  • 行内元素不支持设置宽度和高度,内容区大小由内容撑开
  • padding:垂直方向的padding不会影响其他元素的页面布局 
  • border:同上
  • margin:同上,并且水平方向相邻外间距不会合并 

 

 

display

设置元素显示的类型

display:inline  元素设置为行内元素
display:block   元素设置为块元素
display:inline-block  元素设置为行内块元素
    特点:
         可以设置宽度和高度,且不会独占一行
display:table   元素设置为表格
display:none    元素不在页面中显示,且不占位
    visibility:visible  显示元素
    visibility:hidden   隐藏元素且占位
    

例如,将a元素设置为块元素后就可以设置宽高,且独占一行。 

 

将a元素设置为行内块元素,可以设置宽高,且不会独占一行 

 

盒子的大小box-sizing

默认值:内容盒子,width和height用来设置内容区大小
box-sizing:content-box

边框盒子,width和height用来设置整个盒子的可见框的大小,即内容区+padding+border
box-sizing:border-box

盒子阴影 box-shadow

阴影不会影响可见框大小,页面布局

默认阴影在元素正下方,和元素一样大小

box-shadow:左侧偏移量 下方偏移量 模糊半径 阴影尺寸 阴影颜色 inset/outset

box-shadow:10px 10px 10px rgba(0,0,0,0.5)
偏移量可正可负

浮动

控制元素向左或向右浮动

float:none(默认)
float:left
float:right

特点1:

  • 浮动元素脱离文档流。不再占用文档流的位置,所以元素下边的会自动向上移动
  • 浮动元素不会超出父元素。浮动元素会向父元素的最左侧最右侧移动
  • 浮动元素不会超过他前边的其他的浮动元素
  • 若浮动元素前边是一个没有浮动的块元素,则浮动元素不会上移。

特点2

  • 浮动元素不会盖住文字。文字会自动环绕在浮动元素周围 
  • 元素从文档流中脱离后,元素的性质会发生变化
    • 块元素
      • 不再独占一行
      • 块元素宽度和高度都被内容撑开
    • 行内元素
      • 变成块元素,可以设置宽高
      • 宽度和高度被内容撑开
    • 即脱离文档流,不区分块和行内,均被内容撑开

 

浮动的问题

高度塌陷:(父元素未设置高度时)子元素浮动脱离文档流,无法撑开父元素,导致父元素高度丢失 

 

解决办法:

BFC:block formating context 块级格式化环境。

  1. BFC特点
    • 为元素开启BFC,则该元素会变为一个独立的布局区域
    • 开启BFC的元素不会被浮动元素覆盖
    • 开启BFC的元素子元素和父元素外边距不会重叠
    • 开启BFC的元素可以包含浮动的子元素(防止高度塌陷)
  2. 为高度塌陷的元素开启BFC
    • 设置float(不推荐)
    • 设置inline-block
    • overflow:auto / hidden

清除浮动 clear

清除浮动元素对当前元素产生的影响。

清除浮动以后,网页会自动给该元素添加一个外边距

清除左侧浮动元素的影响
clear:left
清除右侧浮动元素的影响
clear:right
清除两侧中影响最大的浮动
clear:both

使用伪元素 ::after解决高度塌陷

<style>
    给父元素box1添加
    .box1::after{
        让添加的内容把父元素撑开
        content: "";
        after是行内元素,变为块,独占一行
        display: block;
        清除浮动元素的影响
        clear: both;
}
</style>


<div class="box1">
        <div class="box2"></div>
        <div class="box3"></div>
    </div>

 

使用 ::before 解决外边距重叠

.box1{
    width: 200px;
    height: 200px;
    background-color: #bfa;
}
.box1::before{
    content: '';
    将display属性设置为table就可以将两个元素的外边距隔开。table既可以解决高度塌陷,也可以解决外边距重叠
    display: table;
}
.box2{
    width: 100px;
    height: 100px;
    background-color: orange;
    margin-top: 100px;
}

<div class="box1">
    <div class="box2"></div>
</div>

 

clearfix

同时解决高度塌陷和外边距重叠的问题

.clearfix::before,.clearfix::after{
            content: '';
            display: table;
            clear: both;
        }

因绝对定位导致的父元素高度塌陷不可以用clearfix解决,clearfix只能解决float造成的塌陷

定位 position

子绝父相

开启定位后,通过定位可以将元素摆放到页面中的任意位置

position:static 默认值
position:relative 相对定位
position:abcolute 绝对定位
position:fixed 固定定位
position:sticky 粘滞定位

相对定位 relative

将元素相对于元素自身的正常位置进行定位

特点

  • 参照物元素在文档流中原来的位置
  • 开启相对定位会提升元素的层级,但是没有脱离文档流,原来的占位还保留。元素性质不会发生变化
  • 若不设置偏移量(offset),则元素不会发生变化
  • 只会影响自己的位置,不会调整别的元素的位置
  • 可通过top、right、bottom、left调整偏移量
    • 通常toop和bottom left和right 只会使用其中之一
.box1{
    width: 100px;
    height: 100px;
    background-color: #bfa;
}
.box2{
    width: 100px;
    height: 100px;
    background-color: orange;
    相对定位
    position: relative;
    bottom:50px;
    left: 100px;
}
.box3{
    width: 100px;
    height: 100px;
    background-color: #f74abdb9;
}

<div class="box1">1</div>
<div class="box2">2</div>
<div class="box3">3</div>

 

绝对定位 absolute

特点

  • 参照物开启了定位的最近的祖先元素。如果元素没有祖先,则使用文档主体(body),并随页面一起滚动(当网页比较长,滚动时)
  • 开启绝对定位,如果不设置偏移量,元素的位置不会发生变化
  • 开启绝对定位,元素脱离文档流,不占原来的位置 
  • 绝对定位会改变元素性质
    • 行内变成块,可以设置宽高
    • 块宽高被内容撑开,但不会独占一行
    • 即块和行内均被内容撑开
    • 绝对定位提升元素层级

 

        .box1{
            width: 100px;
            height: 100px;
            background-color: #bfa;
        }
        .box2{
            width: 100px;
            height: 100px;
            background-color: orange;

绝对定位
            position: absolute;
            top: 100px;
            left: 100px;
        }
        .box3{
            width: 100px;
            height: 100px;
            background-color: #f74abdb9;
        }
        .box4{
            width: 200px;
            height: 200px;
            background-color: #6a33ebb9;
参照物是开启了定位的最近祖先元素
此时,2相对于4定位
            position: relative;
        }
        .box5{
            width: 100px;
            height: 100px;
            background-color: #c0dd19b9;
            /* position: relative; */
        }

<div class="box1">1</div>
<div class="box4">4
    <div class="box5">5
        <div class="box2">2</div>
    </div>
</div>
<div class="box3">3</div>

 

布局

开启绝对定位后

水平方向的布局:

left+margin-left + border-left + padding-left + width + padding_right + border-right + margin_right+right = 父元素内容的宽度

  • 如果没有auto,则制动调整right的值
  • 如果有auto,则自动调整auto的值(mrgin、width、left、right)
  • left和right的默认值是auto,所以不知道具体的left和right的值时,泽东调整这两个值

垂直方向的布局:(z只有开启绝对定位后才会有垂直方向布局的约束)

top+margin-top + border-top + padding-top + height + bottom + border-bottom + bottom+bottom = 父元素内容的宽度

  • 同理水平布局
水平居中
margin:0 auto
left:0
right:0

垂直居中
margin:auto 0
top:0
bottom:0

固定定位 fixed

固定定位的其他特点和绝对定位一样,不同的是:

特点

  • 参照物浏览器的视口
    • 视口:浏览器的可视窗口,固定不动,不会跟随网页滚动而滚动 

     

粘滞定位 sticky

特点

  • 参照物用户滚动的位置
  • 开启粘滞定位,元素在到达某个位置时固定在某个位置
  • 兼容性不好(不建议使用)。
  • 其他特点和相对定位差不多

层级 z-index

对于开启了定位的元素,可以通过设置z-index指定元素的层级

  • 参数为整数,越大层级越高,越优先显示
  • 如果元素层级一样,则优先显示靠下的元素
  • 祖先元素层级再高也不会盖住后代元素(后代元素会继承祖先元素的层级)

字体

  1. color 字体颜色

    color严格意义上说是前景色

  2. font-size 字体大小

  3. font-family 字体格式

    • 同时指定多个字体,优先使用第一个字体,无法使用则往后推
    • 字体名称不止一个单词,要用引号括起来
    • font-face:将服务器的字体直接提供给用户使用
font-family:"Times New Roman", Times, serif;


@font-face{
    font-family:自己给字体起的名字,例如my-font
    src:url(服务器中字体路径)
}
font-family:myfont
  1. font-style字体样式
    • normal 正常
    • italic 斜体
    • oblique 倾斜(支持较少)
  2. font-weight字体粗细
    • normal 正常
    • bold 加粗
  3. font-varient字体变体
    • normal 正常
    • small-caps小型大写字母

iconfont 图标字体

  • 图片引入图标(不灵活,放大缩小,改变颜色等)
  • 将图标直接设置为字体,然后通过font-face引入
  • https://fontawesome.com/

fontawesome使用:

引入css之后,使用图标字体:

  • 引入类名
前边fas是固定必须写,后边fa-bell表示图标的名字
<i class="fas fa-bell" style="font-size:20px;color:red;"></i>
<i class="fas fa-bell-slash"></i>

还有一些是fab开头的
<i class="fab fa-accessible-icon"></i>

 

  • 通过伪元素添加
    <style>
        li::before{
            content里表示图标字体的编码
                content: '\f1b0';
            font-family表示对应的字体格式
                font-family: 'Font Awesome 6 Free';
            相应的字体font-weight也要对应css里的描述
                font-weight: 900;
                
                color: blue;
                margin-right: 10px;
                
           /* fas */
            font-family: 'Font Awesome 6 Free';
            font-weight: 900;
            /* fab */
            font-family: 'Font Awesome 6 Brands';
            }
    </style>
    
    <ul>
        <li>锄禾日当午</li>
        <li>汗滴禾下土</li>
        <li>谁知盘中餐</li>
        <li>粒粒皆辛苦</li>
    </ul>

 

  • 通过实体引入
&#X固定  f0f3是图标的编号  类名也要写
<i class="fas">&#xf0f3;</i>

 

iconfont

行高line-hight

行高表示文字在页面中占有的实际高度

  • 整数,表示字体的倍数
  • 也可用数字px表示
  • 行间距=行高-字体大小
    <style>
        div{
            font-size: 60px;
            行高的高度就是div的高度
            line-height: 50px;
        }
    </style>
<div>锄禾日当午,汗滴禾下土</div>

font-size设置的是字体框的大小。行高会在单行字体框的上下平均分配

文本的水平和垂直对齐

text-align 水平对齐

text-align:left     左侧对齐
text-align:center   居中对齐
text-align:justify  两端对齐

vertical-align 垂直对齐

只有当字体大小不一样时,才会涉及到垂直对齐

vertical-align:baseline   基线对齐(默认值)
vertical-align:top        顶部对齐(子元素对齐父元素)
vertical-align: bottom;   底部对齐
vertical-align: middle;   居中对齐
vertical-align: 100;   直接指定

 

图片(替换元素)默认相当于文字,默认基线对齐,底部会有缝隙,所以修改vertical-align为其他值即可解决底部留白的问题

text-decoration 文本修饰

可以指定样式(实线、虚线等)和颜色

text-decoration: none;          无(默认值)
text-decoration: underline red dashen;     加下划线
text-decoration: overline red;      加上划线
text-decoration: line-through red;  加删除线

white-space 空白区

设置网页如何处理换行

white-space: normal;   正常换行显示(默认)
white-space: nowrap;   不换行  
white-space: pre;      保留空白
white-space: pre;保留空白格式

    <div class="box2">
        Lorem ipsum, dolor sit amet consectetur adipisicing elit. Maiores laboriosam, explicabo ex beatae sint velit eos excepturi adipisci quas ullam minima id aliquid earum, placeat saepe. Dicta ab dolore enim.
        aa   
            aaaa
                  aaaa
    </div>

 

设置溢出省略号

    .box2{
    宽度必须设置
            width: 100px;
    设置不换行
            white-space: nowrap;
    溢出隐藏
            overflow: hidden;
    文本溢出显示省略号
            text-overflow: ellipsis;
        }

 

下拉框设置

弹出层需要设置较高的层级,确保不会被别的元素盖住

背景

background-color 背景颜色

颜色指定方式:有效的颜色名称red、十六进制值、RGB值。RGBA等
background-color: #bfa;  

opacity指定元素的不透明度
opacity: 0.3;

opacity指定不透明度,其子元素会继承相同的不透明度

RGBA(255,255,255,0.1) 这种方式子元素不会继承

background-image背景图像

可以同时设置背景颜色和背景图片

  • 背景图片 < 元素:背景图片自动将元素充满
  • 背景图片 > 元素:背景图片一部分元素无法完全显示
background-image: url("图片路径");

background-repeat 背景重复

默认情况下在水平和垂直方向上都重复图像

body {
  background-image: url("gradient_bg.png");
  水平方向 重复
  background-repeat: repeat-x;
  垂直方向 重复
  background-repeat: repeat-y;
  不重复
  background-repeat: no-repeat;
}

background-position 背景图像位置

 1. 通过 top、left、right、bottom、center设置位置
  2. 通过偏移量指定位置(负值偏多一些)
body {
  background-image: url("tree.png");
 
  background-position: center center;

  background-position: 100px 100px;
}

 

background-attachment 背景图像附着

指定背景图片是滚动(随页面滚动)的还是固定(不会随页面的其余部分一起滚动)的

body {
  background-image: url("tree.png");
  background-repeat: no-repeat;
  background-position: right top;
  
  不随其他部分滚动
  background-attachment: fixed;
  随其余部分滚动
  background-attachment: scroll;(默认值)
}

background-clip 背景的绘制区域(裁剪)

background-color:yellow;
background-clip:border-box; (默认值)背景裁剪到边框盒
background-clip:padding-box;背景裁剪到内边距
background-clip:content-box;背景裁剪到内容框

 

 

 

background-origin 规定在何位置放置背景图像

也可以直接写偏移量
规定background-position  相对于什么放置图像

background-origin:padding-box;(默认值)相对于内边距框定位
background-origin:content-box;相对于内容框定位
background-origin:boeder-box;相对边框定位

  

 

 

 

background-size 背景图像尺寸

  • 如果只写一个值,另一个默认auto
  • 可以用百分比设置图像
  • cover:图片比例不变,完全覆盖背景区域,但可能不能完整显示
  • contain:图片比例不变且完整显示以适应内容区域
background:url(img_flwr.gif);
background-size:80px 60px;

渐变

  • 渐变是图片,需要通过background-image来设置
  • 渐变可以指定多个颜色,默认平均分配
  • 也可以手动指定颜色渐变的范围
线性渐变:沿着一条直线发生变化。
可以在开始指定方向 to right/to top left/0°/1turn(1圈)
background-image: linear-gradient(to right,red,yellow);
表示红色从多少开始渐变
background-image: linear-gradient(to right,red 10px,yellow 10px);

重复线性渐变
background-image: repeating-linear-gradient();

径向渐变(中心点向四周)
   指定大小
background-image: radial-gradient(50px 50px,red,yellow);

   指定位置
background-image: radial-gradient(50px 50px at left top,red,yellow);
radial-gradient:大小 at 位置,颜色 位置,...
    大小:
        circle 圆形
        ellipse 椭圆
        closest-side 近边
        closest-corner 近角
        farthest-side 远边
        farthest-corner 远角
    位置:
        top right bottom left center

 

表格样式

  • table是块级元素,会独占一行,但是宽度并不是100%,而是被内容撑开,默认margin。
  • 如果table中没有使用tbody,则会自动创建tbody,所以tr是tbody的子元素
  • 默认td中的元素垂直居中 可以使用vertical-align修改

border-spacing边框间距

border-collapse边框合并

此时bborder-spacing没用

table{
边框间距
    border-spacing: 0px;
边框合并
    border-collapse: collapse;
隔行变色
    tr:nth-child(2n){
        background-color: #bfa;
    }
}

transition 过渡

隐藏元素,可以把高度变成0,然后隐藏溢出内容 即,height=0,overflow:hidden

height:0;
overflow:hidden;
transition:height 3s
高度在3秒以内发生变化
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值