• HTML+CSS-Day12


    析标签

     class=”nav”>

               背景

       |

       

       |

    (1)div 高 宽  行

    (2)a   行内块   50 50

    (3)span  margin-right:5px;

    ### 4. 浮动流体布局

    PC端页面会有一个内容部分的固定宽度(例如:1200px、1190px、1004px、960px等等)。

    (版)

    最小宽度 1400将最重内容放在中位置(1200),左右留白

             3890                       (1200)

    #### (1) 分析pc端页面布局特点

     width ='100%' src ="../picture/网站布局合集.jpg"/>

    pc端布局都存在一个用于适应最小屏幕显示的居中元素。一般会把内容的结构都放在这个居中的元素中,左右两侧留白。

    因此在pc端布局中,可以在用于划分某个部分的元素内部加入一个用于居中的元素。如:

    ```html

      

       class="foot">

         class="center">

         

        

      

    ```

    #### (2) 封装自己的reset.css    

    果开发网页项目需要reset.css

    (1)接下载reset.css文

    ```css

    /* 星号的效率过低,非练习时可以自定义某些元素去掉margin: 0;padding: 0; */

    * {margin0;padding0;}

    a {text-decorationnone;}

    ul {list-stylenone; }

    /* 清除浮动 */

    .clearFloat:after {

      content"";

      displayblock;

      height0;

      clearboth;

    }

    .clearFloat {*zoom1;}

    /* 如:针对学子商城居中1000宽度 */

    .center {

      width1000px;margin0 auto;

    }

    ```

    ## 十八、定位(!!!!!!!!)

       #:如果网页中元素位置特殊(不靠左右上右;移动范很大)需要定位

       #:margin

       #整体靠左靠右:float

       #置特殊,调置很大

    (1)多张图片轮播图切换,位置切换

    (2)右侧购物车;人客服务

    (3)小图片 放大镜

      (1)定位功能,不要过使用(改起来吃力)

         果网页后期发生改动

    ### 1.position属性

    - `position`属性是定位属性,用于指定一个元素在文档中的定位方式。

    - top,right,bottom 和 left 属性值则决定了该元素的距离四边的位置,可以为负值。

    - 开发中多用绝对长度单位px进行调整,如果在移动端中,可以使用rem、vw等单位进行调整。

    - 常用取值:

      - `relative` 相对定位

      - `absolute` 绝对定位

      - `fixed` 固定定位

    ### 2.相对定位

    - 相对定位position: relative (要移)不脱离文档流(相对于自己原来位置调整)

    - 可使用top,right,bottom 和 left (动到哪)做偏移。

    - 元素相对的位置是自己本来的位置,移动不改变页面布局。

    - 相对定位属性不会影响周围的布局,但会出现新的层叠顺序

    - 当四个方向值发生重合时,以top和left为优先。

     width ='70%' src ="../picture/相对定位.jpg"/>

    ```html

     html>

       charset="UTF-8">

      </span><span style="color:#000000;">Document</span><span style="color:#800000;">

      

       class="baba">

         class="erzi1">

     class="erzi2">

     class="erzi3">

  

```

### 3.绝对定位

- absolute绝对定位,元素将脱离文档流(搬家),其他元素不为该元素预留空间。

- 它的移动参照为祖先元素的偏移,来确定元素位置。元素会逐层向上寻找自己的参照元素,当找到的最近一层祖先元素具有position属性时(),该元素就会以这个祖先元素的原点为参照点。

                            ?           浏览器窗口

                            ?你定位

            

                ?元素有定位没  开启(以你为准)

    <div>

      要绝对定位(以哪置为准)

     

  

- 可使用top,right,bottom 和 left 做偏移。

- 当四个方向值发生重合时,以“上top”和“左left”为优先。

- 绝对定位的元素可以设置外边距,且不会与其他边距合并。 

 width ='70%' src ="../picture/绝对定位.jpg"/>

```css

.baba {

  background-colorgray;

  positionrelative;

}

.baba>div {width100px;height100px;}

.erzi1 {

  background-colorblue;

  positionabsolute;

  top10px;

  left10px;

}

.erzi2 {

  background-colorred;

  positionabsolute;

  top0;

  left0;

}

.erzi3 {

  background-colorgreen;

  positionabsolute;

  top20px;

  bottom30px;

}

.erzi4 {

  background-colororange;

  positionabsolute;

  top20px;

  margin20px;

}

```

#### (1)子元素在父元素内居中

 class=”item3”> 

  

使用元素定位,让已知高度的子元素在父元素中上下左右居中

```html

  

 class="baba">

   class="erzi">

```

### 【练习】

 width ='70%' src ="../picture/导航标注图.png"/>

> 按照标注图制作 ,注意背景的平铺方式    

> 鼠标移入,两个导航项出现下拉菜单

> 可以不用严格按照该图做,可以适当改变

> 加入reset.css

```html

 html>

     charset="UTF-8">

    </span><span style="color:#000000;">Document</span><span style="color:#800000;">

     rel="stylesheet" href="./cssReset.css">

    

     class="bg">

        

         class="nav">

             class="center clearfix">

                 src="./img/hpjylogo.png" alt="" class="logo">

                

            

        

    

```

### 4.固定定位

fixed固定定位是元素,决定它的“包含块”是html,唯一可以限定固定定为元素的就是html跟元素

- `position: fixed;`它到父级始终是html

- 直接在窗口的某个位置固定

- 可使用top,right,bottom 和 left 做偏移。

#### (1)居中的弹窗

固定定为,元素在父元素中居中

```css

* {margin0;padding0;}

.alertBox {

  width300px;

  height200px;

  colorred;

  background-color#aaa;

  positionfixed;

  top:50%;

  left:50%;

  margin-top-100px;

  margin-left-150px;

}

```

#### (2)返回顶部元素

```html

  

 class="pic">

   src="./img/固定定位长图背景.jpg" alt="">

 class="top">

   href="#">TOP

```

### 5.z-index (css叠样式表)!!!!!!!!!!!!

#层  底(文档流)

#一层  定/浮

z-index就是z轴的顺序,z-index可以设置字符值,如:auto,多数情况设置整数值,可以为负值。

z-index的最大值是 21,4748,3647 (21亿多)。跨度尽量10以上

#### (1) 层叠顺序取值

 width ='70%' src ="../picture/层叠顺序示意图.png"/>

#建:属性通对定位合使用

- `z-index`层叠顺序   

# 素   z-index:10;

#    z-index:20;上

- 直接设置没有单位的整数,可以为负值,值越大层级越高

#### (2) 层叠领域的准则

 width ='40%' src ="../picture/移动端固定背景效果.jpg"/>

- 值大的在上:z-index的值,在同一个层叠上下文领域,层叠水平值大的那一个覆盖小的。

- 后来的在上:当元素的层叠水平一致的时候,在文档流中处于后面的元素会覆盖前面的元素。

```html

 class="box">

   src="./img/手机背景图750x1334@2.jpeg" alt="">

Lorem*3

```

## 十九、渐变

以前的渐变使用的是图片平铺

 width ='70%' src ="../picture/老渐变.jpg"/>

### 1. 线性渐变

#### (1) 颜色和角度

- `background-image: linear-gradient(color1,color2,……);`渐变最少两个颜色,才能体现出颜色的变化

- `linear-gradient()`渐变颜色的参数用逗号分开,可以写多种颜色表达方式

- 渐变的方向,按照参数顺序依次向下,可以在颜色前加入角度或关键字控制渐变方向

  - `90deg` 角度

  -  to 终点 关键词,就是终点在哪个位置,top,left,right,bottom,记得加空格 (不建议使用)

### 【练习】

 width ='50%' src ="../picture/彩虹练习图.jpg"/>

> 使用七种颜色作出彩虹渐变效果

> 颜色可以使用任何表示色值的方式

### 【练习】

 width ='100%' src ="../picture/导航效果标注图.png"/>

> 渐变的导航,颜色自定义

> 导航总宽度1000px 高度 30px  

> 需要加入鼠标悬停改变背景颜色的效果

```css

    * {

      margin0;

      padding0;

    }

    .center {

      width1000px;

      margin0 auto;

    }

    .nav {

      width100%;

      /* margin-top: 100px; */

    }

    .nav a {

      displayblock;

      text-decorationnone;

      width200px;

      height40px;

      text-aligncenter;

      line-height40px;

      color#fff;

      font-size18px;

      background-image: linear-gradient(90deg,#23cff8,#5869ba);

      floatleft;

    }

    .nav a:hover {

      color#222;

      backgroundaqua;

    }

```

#### (2) 渐变的比例

- `background-image:linear-gradient(方向,颜色1 起始值 结束值,颜色2 起始值 结束值,颜色n 起始值 结束值……)`

- 多个颜色渐变时,渐变的区域需要调整,可采取控制颜色范围的方法。在函数内颜色的后面加入长度单位(如px或%)用空格分隔。

- 【注意】浏览器版本低时,渐变的开始值和结束值无效。需要升级浏览器版本,下载谷歌新版浏览器。

```css

div {

  width600px;

  height300px;

  border2px solid black;

  background-image: linear-gradient(90deggreen 0 200pxyellow 200px 400pxred 400px 600px);

}

```

### 2. 径向渐变

#### (1) 渐变方向和范围

 width ='40%' src ="../picture/径向.jpg"/>

- `background-image: radial-gradient(color1,color2,……);`

- background-image:radial-gradient(颜色1 起始值 结束值,颜色2 起始值 结束值,颜色n 起始值 结束值……)

```css

.d1 {

  background-image: radial-gradient(red,yellow);

}

.d2 {

  background-image: radial-gradient(rgb(4863199),rgb(19194179),rgb(02550));

}

.d3 {

  background-image: radial-gradient(red 0% 30%,yellow 30% 60%,green 60% 100%);

}

```

#### (2) 半径

- `background-image: radial-gradient(半径,颜色1,颜色4,颜色3);`

- `background-image: radial-gradient(x轴半径 y轴半径,颜色1,颜色4,颜色3);`

- 半径只传入一个参数,则表示该渐变形状为圆

- 半径可以是px或%,使用px不会因为半径的变化而变化

- 颜色范围用的百分比,半径变化,百分比参照半径

- 【注意】真实的渐变控制如果比外层空间小,剩下都是部分会被最后一个颜色填充

 width ='60%' src ="../picture/径向渐变半径.png"/>

```css

div {

  width500px;

  height300px;

  border2px solid black

}

.d1 {

  background-image: radial-gradient(100px,red,yellow);

}

.d2 {

  background-image: radial-gradient(100px 30px,red,yellow,green);

}

.d3 {

  background-image: radial-gradient(10% 10%,red,yellow,green);

}     

```

#### (3) 圆心起点

- background-image: radial-gradient(x轴半径 y轴半径 at x轴圆心 y轴圆心,颜色1 起始值 结束值,颜色2 起始值 结束值……)

- 在圆心后面增加at 空格 x轴 y轴的原点位置,可以使用长度单位或关键词。取值可使用px,% 或者关键词:left/top/bottom/right

- 注意重点

  - 半径只传入一个参数,则表示该渐变形状为圆

  - 颜色范围用的百分比,半径变化,百分比参照半径

  - 颜色范围用的是px,则不会因为半径的变化而变化

 width ='50%' src ="../picture/圆心.jpg"/>

```css

.d1{

  background-image: radial-gradient(50px at left top,yellow 0 50px,#222 100px);

}

.d2{

  background-image: radial-gradient(50px at 20% 30%,yellow 0 50px,#222 100px);

}

```

### 3. 重复的渐变

- 注意重复的渐变要求浏览器版本,版本过低的浏览器版本无法查看效果

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

- `background-image: repeating-radial-gradient()` 重复的径向渐变

- 当半径过小,页面分辨率显示效果会怪异

```css

.d1{

  background-image: repeating-linear-gradient(red 0 2pxyellow 4px 6pxgreen 8px 10px);

}

.d2{

  background-image: repeating-radial-gradient(red 0 2%yellow 2% 4%green 4% 6%);

}

```

### 【练习】

 width ='70%' src ="../picture/信封.jpg"/>

> 信封用重复渐变 background-image: repeating-linear-gradient(-45deg,#f00 0 10px,#fff 10px 20px,#00f 20px 30px,#fff 30px 40px)     

> 按钮使用 渐变background-image: linear-gradient(#ecf6ff,#9bc1e1); 阴影  box-shadow: 0 5px 0 0 #346a9a;

```html

 html>

   charset="UTF-8">

  </span><span style="color:#000000;">Document</span><span style="color:#800000;">

  

   class="xzbj">

    

寄给xxx的一封信

  

```

### 4. 对渐变的兼容

渐变效果不支持低版本浏览器,之前关于css3的浏览器兼容,厂商的私有前缀

浏览器厂商制作的浏览器,不同时期对css的兼容不同,每个浏览器都有自己的内核

查看学子商城渐变的写法,对应每一个内核都要写一遍,要写四遍。但最终只会按照当前浏览器的内核执行对应的代码

#### (1)浏览器私有前缀

- `-webkit-`  浏览器:chrome/safari/edge

- `-moz- `    浏览器:firefox

- `-o- `      浏览器:opera

- `-ms-`      浏览器:IE

background-image: linear-gradient(to bottom,red,yellow);

background-image: -webkit-linear-gradient(to bottom,red,yellow);

background-image: -moz-linear-gradient(to bottom,red,yellow);

background-image: -o-linear-gradient(to bottom,red,yellow);

background-image: -ms-linear-gradient(to bottom,red,yellow);

#雷 postcss 工具软件(将所有css涉及兼容加前端) 所有私有浏览器前(vue)

#### (2)渐变的方向

- 不写私有前缀,要写终点的方式,如 to bottom

  - 没有私有前缀正确写法:`background-image: linear-gradient(to bottom,red,yellow);`

  - 没有私有前缀错误写法:`background-image: linear-gradient(bottom,red,yellow);`

- 写私有前缀要写起点的方式 如top

  - 有私有前缀正确的写法:`background-image: -webkit-linear-gradient(top,red,yellow);`

  - 有私有前缀错误的写法:`background-image: -webkit-linear-gradient(to top,red,yellow);`

  • 相关阅读:
    python getopt模块的使用
    微服务中配置文件(YAML文件)和项目依赖(POM文件)的区别与联系
    ChatGPT充值,银行卡被拒绝
    OpenCV中Mat对象及其创建
    计算机二级WPS 选择题(模拟和解析十二)
    代码泄漏无感知?代码安全审计构筑企业核心资产安全防线
    如何在 Next.js 中构建进度条指示器
    【牛客刷题-SQL大厂面试真题】NO2.用户增长场景(某度信息流)
    (02)Cartographer源码无死角解析-(33) LocalTrajectoryBuilder2D: 点云数据流向、处理、消息发布等→流程复盘
    【Linux学习笔记】代码编辑工具vim
  • 原文地址:https://blog.csdn.net/qq_45229580/article/details/127101428