css基础篇-----选择器,emmet语法,行高,背景,定位,层级,三角

395 阅读12分钟

OIP-C4.jpg

css

  1. 内联式 书写在style标签内

  2. 外联式 写在单独的css文件中,通过link标签引入

  3. 行内式 写在标签的style属性中

    基础选择器

    1.标签名{css名:属性值}

    作用:通过标签名,找到页面中所有这类标签设置样式

    代码样式:

    <style>
        p{
            color:pink;
        }
    </style>
    

    2.类选择器

    结构:

    .类名{css属性名:属性值;}

    作用:通过类名,找到页面中所用带有这个类名的标签设置样式

    <style>
        .one{
            color:pink;
        }
    </style>
    

    3.id选择器

    结构:

    #id{css属性名:属性值}

    作用:通过id,找到页面中带有这个id的标签设置样式

    id在这个页面是唯一,一个id只能使用一次

    <style>
        #id{
            color:pink
        }
    </style>
    

    通配符选择器

    结构:

    *{css属性名:属性值}

    作用:找到页面所有标签,选择样式

    <style>
        *{
            color:pink;
        }
    </style>
    

    后代选择器(空格)

    语法:

    选择器1 选择器2{css}

    作用:

    在标签1中找到标签2给标签2设置样式(中间用空格隔开)

    子代选择器

    语法:

    选择器1>选择器2{css}

    大于号隔开

    并集选择器

    作用:同事选择多组标签,设置同样的样式

    语法:选择器1,选择器2{css}

    中间用逗号隔开

    交集选择器

    语法:选择器1选择器2{css}

    作用:找到页面中既能被选择器1选中,又能被选择器2选中的标签,设置样式

    没用东西分隔 如果有标签必须写在前面

    hover为类选择器

    语法::hover{css}

    作用:鼠标悬停是的状态

    结构为类选择器

    选择器
    E:first-child{}p匹配父元素第一个子元素
    E:last-child{}匹配父元素最后一个子元素
    E:nth-child(n){}匹配父元素中第n个元素
    E;nth-last-child(n){}匹配父元素中倒数第n个元素

    n为0.1..2.3.4.5.6.7.8.9....

    通过公式:

    功能
    偶数2n,ecen
    奇数2n+1,2n-1,odd
    找到前五个-n+5
    找到从第五个往后n+5

    emmet语法

    实例效果
    标签名div
    类选择器.red
    id选择器#one
    交集选择器p.red#one

    子代选择器ul>li
    内部文本ul>li{我是内容}
    • 我是内容
    创建多个ul>li*3

    焦点为类选择器

    ➢ 场景:用于选中元素获取焦点时状态,常用于表单控件

    ➢ 选择器语法:

    input:focus{

    background-color:skyblue;

    ➢ 效果:

    表单控件获取焦点时默认会显示外部轮廓线

    属性选择器

    场景:通过元素上的HTML属性来选择元素,常用于选择 input 标签

    选择器功能
    E:[attr]选择attr属性的元素
    E:[att^=''val'']选择具有attr属性并且属性值等于val的E元素

    字体和字体样式

    1.字体大小

    属性名:font-size

    值:数字+px

    代码样式:

    <style>
        .one{
            font-size:16px;
        }
    </style>
    

    2.字体粗细

    属性名:font-weight

    取值:

    关键字: 纯数字: 100-900的正整数

    正常 加粗 正常 加粗

    normal bold 400 700

    代码样式:

    <style>
        .one{
            font-weight:bold;
            font-weight:400;
            font-weight:700;
        }
    </style>
    

3.字体样式(是否倾斜)

属性名:font-style

取值:

正常(默认值):normal

倾斜:italic

代码样式:

```
<style>
    .one{
        font-style:italic;
    }
</style>
```

## 4.字体和文本样式

属性名:font-family

取值:’‘microsoft YaHei’‘ 微软雅黑 黑体 宋体

注意:

出现多个单词,需要用引号包裹,最后一个则不用

#### 5.font的复合写法

font:style size weight family

只能省略前面两个

# 样式的层叠问题

给样式设置了相同的标签,此时样式会重叠,写在最下面的生效。

文本样式

1.文本缩进

text-indent

取值:

  • 数字+px
  • 数字+em(em相当于当前标签font-size的大小) 代码样式:
            font-size: 24px;
            /* 文本的第一行首行缩进 多少距离  */
            /* text-indent: 20px; */
            /* 如果此时写了2em 则是缩进当前元素 2个文字大小的距离  */
            text-indent: 2em;  
        }

2.文本水平对齐方式

text-align

取值:

left左对齐
center居中对齐
right右对齐

代码样式:

<style>
    .one{
         text-align:left;
         text-align:center;
         text-align:right;
    }
</style>

text-align:center可以让哪些元素居中

1.文本

2.span标签,a标签

3.input标签,img标签

需要给父元素添加

3.文本修饰

text-decoration

取值:

underline下划线
line-through删除线
overline上划线
none无装饰线

4.行高

line-height

取值:

  • 数字+px

  • 倍数(当前fontsize的倍数)

    • 网页精准布局的时候可以用lin-height:1 取消上下间距
    • font:style weight size/line-height family

    文字颜色:color

    背景颜色:background-color

    颜色表示方法表示含义属性值
    关键词预定义的颜色名red,green
    rgb()红绿蓝三色原色rgb(0,0,0,)
    rgba()红绿蓝三原色+a透明度rgba(0,0,0,1)
    十六进制#开头,将数字转换为十六进制数字#456666

    标签水平居中

    margin:0 auto

    给当前元素设置

    背景

    1.背景颜色

    background-color

    默认值:

    透明:rgba(0,0,0,0)、transparent

    2.背景图片

    background-image

    值:background-image:url(图片路劲)

    3.背景平铺

    background-repeat

    值:

    repeat 默认值(水平垂直方向平铺)

    no-repeat 不平铺

    repeat-x 水平方向平铺

    repeat-y 垂直方向平铺

    4背景透明色

    transparent

    5.background-position

    值:1.水平方向 垂直方向

    方位名词:

    水平方向:left center right

    垂直方向:top center bottom

    2.数字+px(坐标)

    背景连写

    background:color image repeat position

    空格隔开

    css三大特性

1.继承性

2.层叠性

3.优先级

继承<通配符选择器<标签选择器<类选择器<id选择器<行内样式<!important

盒子模型

由内容区域(content),内边距区域(padding),边框区域(border),外边距区域(margin)组成

边框(border)

border-width 边框粗细

值:边框粗细

border-style 边框样式

值:solid 实线 dashed 虚线 dotted 点线

border-color 边框颜色

颜色取值

连写形式:

border:1px solid red;

边框会撑大盒子

border-collapse:collapse;(表格单元格合并变细线边框效果)

内边距(padding)

1.值:数字+px

一个值 上下左右

两个值 上下 左右

三个值 上 左右 下

四个值 上 下 左 右(顺时针)

内边距会撑大盒子

css3盒子模型(自动内减)

box-sizing:border-box

外边距(margin)

1.值:数字+px

一个值 上下左右

两个值 上下 左右

三个值 上 左右 下

四个值 上 下 左 右(顺时针)

单方向应用

方向
水平方向margin-left让当前的盒子往右移动
水平方向margin-right让右边的盒子往右移动
垂直方向margin-top让当前盒子往上移动
垂直方向margin-bottom让下面的盒子往下移动

外边距合并(折叠现象)

垂直布局的块级元素,上下的外边距会合并

取最大的值

外边距塌陷(折叠现象)

互相嵌套的块级元素,子盒子的margin-top会作用在父元素身上

导致父元素一起下移

解决方法:

  • 给父元素设置border-top或者padding-top(分隔父元素的margin-top)

  • 给父元素设置:overflow:hidden

  • 转换行内快元素

  • 设置浮动

    行内元素margin和padding无效情况

    1. 水平方向生效

    2. 垂直方向不生效

      伪元素

      ::after 在父元素前面添加一个伪元素

      ::before 在父元素后面添加一个伪元素

      1,必须设置content属性才能生效

      2.伪元素默认是行内元素

      float浮动

      值:

      left(左浮)

      right(右浮)

      特点:

      1.在标准流不占位置

      2.比标准流高半个级别

      3.浮动找浮动,会在上一个浮动元素左右

      4.特殊显示效果:一行可显示多个,可以设置宽高

      注意点:浮动不能通过text-align:center ;和 margin:0 auto;

      书写网页导航步骤

      1. 清除默认的margin和padding
      2. 找到ul,去除小圆点
      3. 找到li标签,设置浮动让li一行中显示
      4. 找到a标签,设置宽高 → a标签默认是行内元素,默认不能设置宽高??

      方法一:给a标签设置 display : inline-block

      方法二:给a标签设置 display : block

      方法三:给a设置 float : left

      清除浮动

      含义:清除浮动带来的影响

      影响:如果子元素浮动了,此时子元素不能撑开标准流的块级父元素

      ➢ 原因:

      子元素浮动后脱标 → 不占位置

      ➢ 目的:

      需要父元素有高度,从而不影响其他网页元素的布局

      清除浮动方法
      1.直接设置父元素高度

      特点:

      优点:简单粗暴

      缺点:有些布局不能固定父元素高度。如:新闻列表,京东推荐模块

      2.额外标签法

      ➢ 操作:

      1. 在父元素内容的最后添加一个块级元素
      2. 给添加的块级元素设置 clear:both

      ➢ 特点:

      缺点:会在页面中添加额外的标签,会让页面的HTML结构变得复杂

      3.单伪元素清除法

      替代标签法

      特点:方便,直接添加类名

      代码样式:

clearfix::after{
content:'';
display:block;
clear:both;
}
/*补充写法*/
clearfix::after{
content:'';
display:block;
clear:both;
/*在网页中看不到伪元素*/
height:0visibility:hidden;
}
    1. 4.双伪元素清除法

      替代标签法

      特点: 方便,直接添加类名

      代码样式:

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

      5.直接给父元素添加overflow:hidden;

      特点:优点:方便

      position定位

      1.1 网页常见布局方式

      1. 标准流

      1. 块级元素独占一行 → 垂直布局
      2. 行内元素/行内块元素一行显示多个 → 水平布局

      2. 浮动

      1. 可以让原本垂直布局的 块级元素变成水平布局

      3. 定位

  1. 可以让元素自由的摆放在网页的任意位置

  2. 一般用于 盒子之间的层叠情况

    1. 可以解决盒子与盒子之间的层叠问题

​ 定位之后的元素层级最高,可以层叠在其他盒子上面

​ 可以让盒子始终固定在屏幕中的某个位置

定位方式属性值
静态定位(默认)static
相对定位relative
绝对定位absolute
固定定位fixed

设定偏移值(位置)

left:数字+px

top:数字+px

bottom:数字+值

right:数字+值

position:static;(静态定位)

静态定位就是之前标准流,不能通过方位属性进行移动

position:relative;(相对定位)

➢ 介绍:自恋型定位,相对于自己之前的位置进行移动

➢ 特点:

  1. 需要配合方位属性实现移动
  2. 相对于自己原来位置进行移动
  3. 在页面中占位置没有脱标

➢ 应用场景:

  1. 配合绝对定位组CP(子绝父相)

  2. 用于小范围的移动

    position:absolute;(绝对定位)

    ➢ 介绍:拼爹型定位,相对于非静态定位的父元素进行定位移动

    ➢ 特点:

    1. 需要配合方位属性实现移动
    2. 默认相对于浏览器可视区域进行移动
    3. 在页面中不占位置已经脱标

    ➢ 应用场景:

    1. 配合绝对定位组CP(子绝父相)

➢ 绝对定位相对于谁移动?

  1. 祖先元素中没有定位 → 默认相对于浏览器进行移动

  2. 祖先元素中有定位 → 相对于 最近的 有定位 的祖先元素进行移动

    子绝父相

    对网页布局影响小

    子绝父相水平垂直居中的方法

    1.left:50%;(让子盒子往右走大盒子的一半)

    2.top:50%;(让子盒子往下走大盒子的一半)

    3.transform:translateX(-50%);(让子盒子往左+往上走自己的一半)

    position:fixed;

    ➢ 介绍:死心眼型定位,相对于浏览器进行定位移动

    ➢ 特点:

    1. 需要配合方位属性实现移动
    2. 相对于浏览器可视区域进行移动
    3. 在页面中不占位置已经脱标

    ➢ 应用场景:

    1. 让盒子固定在屏幕中的某个位置

      元素层级问题

      ➢ 不同布局方式元素的层级关系:

      标准流 < 浮动 < 定位

      ➢ 不同定位之间的层级关系:

      相对、绝对、固定默认层级相同

      此时HTML中写在下面的元素层级更高,会覆盖上面的元素

      z-index改变定位元素层级

      值:数字(数字越大,层级越高)

      装饰

      vartacil-align 装饰(文子类型基线,顶线,中线,底线对齐)

      vartacil-align

      解决行内/行内块元素垂直对齐

      值:

      baseline(默认,基线对齐)

      top(顶部对齐)

      middle(中部对齐)

      bottom(底部对齐)

      vartacil-align可以解决的问题

      1. 文本框和表单按钮无法对齐问题
      2. input和img无法对齐问题
      3. div中的文本框,文本框无法贴顶问题
      4. div不设高度由img标签撑开,此时img标签下面会存在额外间隙问题
      5. 使用line-height让img标签垂直居中问题

      ➢ 注意点:

      学习浮动之后,不推荐使用行内块元素让div一行中显示,因为可能会出现垂直对齐问题

      推荐优先使用浮动完成效果

      cursor光标类型

      作用:

      设置鼠标光标在元素上的显示样式

      值:

      default (小箭头)默认值

      pointer(小手效果)

      text(工字型)

      move (十字光标)

      border-radius边框圆角

      作用让盒子四个角变得圆润

      值:

      数字+值,百分比

      overflow溢出显示效果

      visible(默认值,溢出部分可见)

      hidded(溢出显示隐藏)

      scroll(无论是否溢出都显示滚动条)

      auto (格局是否溢出,自动显示滚动条或者隐藏滚动条 )

      元素本身隐藏

      ➢ 场景:让某元素本身在屏幕中不可见。如:鼠标:hover之后元素隐藏

      ➢ 常见属性:

      1. visibility:hidden
      2. display:none

      ➢ 区别:

      1. visibility:hidden 隐藏元素本身,并且在网页中 占位置
      2. display:none 隐藏元素本身,并且在网页中 不占位置

      ➢ 注意点:

      开发中经常会通过 display属性完成元素的显示隐藏切换

      display:none;(隐藏)、 display:block;(显示)

      opacity 元素整体透明度(扩展)

      值:0-1之间的数字

      0表示完全透明

      1表示不透明

      三角

      border

      1. 设置一个盒子

      2. 设置四周不同颜色的边框

      3. 将盒子宽高设置为0,仅保留边框

      4. 得到四个三角形,选择其中一个后,其他三角形(边框)设置颜色为透明

        好啦!css基础篇完结,还有一些c3新增的明天再发啦!