CSS—定位装饰

一、定位

1.网页常见布局方式

标准流
  • 块级元素独占一行——垂直布局

  • 行内元素/行内块元素一行显示多个——水平布局

浮动
  • 可以让原本垂直布局的块级元素变成水平布局

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

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

2.使用定位的步骤

  • 设置定位方式

属性名:position

常见属性值如下:

定位方式

属性值

静态定位

static

相对定位

relative

绝对定位

absolute

固定定位

fixed

  • 设置偏移值

偏移值设置分为两个方向,水平和垂直方向各选一个使用即可

选取的原则一般是就近原则(离哪边近用哪个)

方向

属性名

属性值

含义

水平

left

数字+px

距离左边的距离

水平

right

数字+px

距离右边的距离

垂直

top

数字+px

距离上边的距离

垂直

bottom

数字+px

距离下边的距离

注意:如果left和right都有,以left为准;top和bottom都有以top为准

3.相对定位

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

  • 代码:position:relative

  • 特点:

  • 需要配合方位属性实现移动

  • 相对于自己原来位置进行移动

  • 在页面中占有原来的位置——没有脱标

  • 仍然具有标签原有的显示模式特点

  • 应用场景:

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

  • 用于小范围的移动

<style>
        .box{
            position: relative;
            left: 100px;
            top: 200px;
        }
    </style>

静态定位

相对定位

4.绝对定位

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

  • 代码:position:absolute

  • 特点:

  • 需要配合方位属性实现移动

  • 默认相对于浏览器可视区域进行移动

  • 在页面中不占位置——已经脱标

  • 改变标签的显示模式特点:具有行内块特点(在一行共存,宽高生效。如果没有宽度也没有内容,盒子的宽度尺寸就是0)

  • 应用场景:

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

注意:绝对定位,先找已经定位的父级(就近找定位的父级,逐层找),如果有这样的父级就以这个父级为参照物进行定位

有父级,但父级没有定位,以浏览器窗口为参照进行定位

例1:父级没有定位

 .box{
          /* 绝对定位,先找已经定位的父级,如果有这样的父级就以这个父级为参照物进行定位 
             有父级,但父级没有定位,以浏览器窗口为参照进行定位*/
            position: absolute;
            left:0;
            top: 0;
}

静态定位

无父级绝对定位

例2:子绝父相

<style>
        .father{
            width: 400px;
            height: 400px;
            background-color: pink;
        }
        .son{
            /* 父相 */
            position: relative;
            width: 300px;
            height: 300px;
            background-color:skyblue;
        }
        .sun{
            /* 父相 */
            position: absolute;
            right: 20px;
            bottom: 50px;

            width: 200px;
            height: 200px;
            background-color: rgb(193, 248, 193);
        }
    </style>

<body>
    <div class="father">
        <div class="son">
            <div class="sun"></div>
        </div>
    </div>
</body>

无父级绝对定位

子绝父相

5.定位—居中

 .box{
            position: absolute;
            margin: 0 auto;  /*标准流*/
            width: 300px;
            height: 300px;
            background-color: pink;
        }
  • 绝对定位的盒子不能使用左右margin auto居中

.box{
            position: absolute;
            /* left: 50% 整个盒子移动到浏览器中间偏右位置 */
            left: 50%;
            /* 把盒子向左侧移动:自己宽度的一半 */
            margin-left: -150px;

            top: 50%;
            margin-top: -150px;
            width: 300px;
            height: 300px;
            background-color: pink;
        }

注:省去计算、修改数据的繁琐 transform:translate(-50%,-50%);

6.固定定位

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

  • 代码:position:fixed

  • 特点:

  • 需要配合方位属性实现移动

  • 相对于浏览器可视区域进行移动

  • 在页面中不占位置——已经脱标

  • 具备行内块特点

  • 应用场景:让盒子固定在屏幕中的某个位置

.box{
            position: fixed;
            left: 0;
            top:0;
}

7.元素的层级关系

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

标准流<浮动<定位

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

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

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

  • 默认情况下,定位盒子 后来者居上(后压前)

z-index:整数;取值越大,显示顺序越靠上;z-index默认值为0

<style>
        div{
            width: 200px;
            height: 200px;
        }
        .one{
            position: absolute;
            left: 20px;
            top: 50px;

            z-index: 1;

            background-color: pink;

        }
        .two{
            position: absolute;
            left: 50px;
            top: 100px;
            background-color: skyblue;
        }
    </style>

<body>
    <div class="one">one</div>
    <div class="two">two</div>
    <!-- 默认情况下,定位盒子 后来者居上(后压前) -->
</body>

实现图片

二、装饰

  1. 认识基线

  1. 文字对齐问题

  • 场景:解决行内/行内块元素垂直对齐问题

  • 问题:当图片和文字在一行中显示时,其实底部不是对齐的

  1. 垂直对齐方式

浏览器把行内和行内块标签当做文字处理,默认基线对齐(也可以设置display:block来处理问题)

  • 属性名:vertical-align

  • 属性值:

属性值

效果

baseline

默认,基线对齐

top

顶部对齐

middle

中部对齐

bottom

底部对齐

让图片垂直居中
.father{
width:600px;
height:600px;
line-height:600px;
text-align:center;  /*水平居中把img理解成文字 */
}

.img{
vertical-align:middle;
}
  1. 光标类型

  • 场景:设置鼠标光标在元素上时显示的样式

  • 属性名:cursor

  • 常见属性值:

属性值

效果

default

默认值,通常是箭头

pointer

小手效果,提示用户可以点击

text

工字型,提示用户可以选择文字

move

十字光标,提示用户可以移动

  1. 边框圆角

  • 场景:让盒子四个角变得圆润,增加页面细节,提升用户体验

  • 属性名:border-radius

  • 常见取值:数字+px、百分比

  • 赋值规则:从左上角开始赋值,然后顺时针赋值,没有赋值的看对角

  • 应用
  • 画一个正圆(头像)

盒子必须是正方形

设置边框圆角为盒子宽高的一半——border-radius:50%

  • 胶囊按钮

盒子必须是长方形

设置——border-radius:盒子高度的一半

  1. overflow溢出部分显示效果

  • 溢出部分:指的是盒子 内容部分 所超出盒子范围的区域

  • 场景:控制内容溢出部分的显示效果,如:显示、隐藏、滚动条......

  • 属性名:overflow

  • 常见属性值:

属性值

效果

visible

默认值,溢出部分可见

hidden

溢出部分隐藏

scroll

无论是否溢出,都显示滚动条

auto

根据是否溢出,自动显示或隐藏滚动条

  1. 元素本身隐藏

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

  • 常见熟悉:

  1. visibility:hidden(不常用) 占位隐藏

  1. display:none 不占位隐藏

导航中鼠标悬停a 显示二维码图片

.nav li a:hover img{
    display:block;
}

  1. 元素整体透明度

  • 场景:让某元素整体(包括内容)一起变透明

  • 属性名:opacity

  • 属性值:0~1之间的数字

1:表示完全不透明

0:表示完全透明

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值