CSS基础:界面样式和 图片文字居中(vertical-align)

界面样式

所谓的界面样式,就是更改一些用户的操作样式,进而提供更好的用户体验。

其中说一下常用的三种。

  • 更改用户的鼠标样式。
  • 表单的轮廓。
  • 防止表单域拖拽

鼠标样式 cursor

在这里插入图片描述

有很多属性,就聊一下常用的几个:

属性描述
default默认
pointer小手
move移动
text文本
not-allowed禁止

演示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试文档</title>

</head>
<body>
<li style="cursor:default;">这是一个默认</li>
<hr>
<li style="cursor:pointer;">这是一个小手</li>
<hr>
<li style="cursor: move;">这是一个可以移动</li>
<hr>
<li style="cursor: text;} ">这是一个文本</li>
<hr>
<li style=" cursor: not-allowed;} ">这是一个禁止</li>

</body>
</html>

在这里插入图片描述

轮廓线 outline

先演示情况:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试文档</title>

</head>
<body>
<input type="text">
<input type="text">
</body>
</html>

发现我用使用鼠标移动上去的时候发现其边框颜色变了,在开发中其中会将其取消。

在这里插入图片描述

然后我们看一下outline的属性;

在这里插入图片描述

看出其三个设置,其实很像是border的设置了,其实除了属性名不一样,其里面的写的属性值几乎一样。所以不在截图,取消这个轮廓线很吉安的。

outline:none;/*一般写这个。*/
/*或者*/
outline-style:none;

演示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试文档</title>
    <style>
        input{
            outline: none;
        }
    </style>
</head>
<body>
<div>
    <input type="text">
    <input type="text">
</div>

</body>
</html>

在这里插入图片描述

防止拖拽文本域 resize

先看官方文档:

在这里插入图片描述

比如有些标签textarea定义后可以拖拽。哪怕你定义了高度,所以

resize:none;

演示

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试文档</title>
    <style>
        input textarea{
            outline: none;
        }
        #t2{
            resize: none;
        }
    </style>
</head>
<body>
<div>
    <input type="text">
    <textarea id="t1" rows="10" cols="10"></textarea>
    <textarea id="t2" rows="10" cols="10"></textarea>
</div>

</body>
</html>

在这里插入图片描述

实现行内块和文字垂直居中

很多时候比如文字和图片在一个盒子里面,需要垂直居中的时候就需要vertical-align。

官方解释:用于设置一个元素的垂直对齐方式,但是它针对于行内元素或者行内元素有效。

在这里插入图片描述

其中常用的有以下几个:

属性值描述
baseline默认,元素放置在父类元素的基线上。
top把元素的顶端于行内中最高元素的顶端对齐。
middle把此元素放在父元素的中部。
bottom把元素的顶端与行中最低的元素的顶端对齐。

现在理解以下这几个线:

在这里插入图片描述

简单看一下所谓底线和基线有什么区别。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试文档</title>
    <style>
    div{
        width: 600px;
        height: 200px;
        border: 1px solid black;
    }
    img{
        width: 100px;
        height: 100px;
    }
    </style>
</head>
<body>
<div>
    <img src="jpg/ys.png">这是芭芭拉
</div>
 
</body>
</html>

在这里插入图片描述

可以看出文本是从底线开始的,而图片是从基线开始的。

如果中间对齐呢?

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试文档</title>
    <style>
        div{
            width: 600px;
            height: 100px;
            border: 1px solid black;
           

        }
        img{
            width: 100px;
            height: 100px;
        }
        .d1{
            <!-- 可见文字高度设置没有用,只能对齐文字而已,但是前面有图片了却没有达到自己想要效果-->
            line-height: 100px;
        }
        .d2{
            vertical-align: middle;
        }


    </style>
</head>
<body>
<div class="d1">
    <img src="jpg/ys.png">这是芭芭拉
</div>
<hr>
<div >
    <img  class="d2" src="jpg/ys.png">这是芭芭拉
</div>
<hr>
<img  class="d2" src="jpg/ys.png"> <em>这是芭芭拉</em>
</body>
</html>

在这里插入图片描述

所以图片,表单都属行内块元素,默认的vertical-align是基线对齐。

取消图片空白缝隙

图片底层会有一个空白缝隙,原因是行内块元素会和文本的基线对齐

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试文档</title>
    <style>
        div{
            border: 1px solid black;
        }
        img{
            width: 100px;
            height: 100px;
        }


    </style>
</head>
<body>
<div class="d1">
    <img src="jpg/ys.png" />
</div>
</body>
</html>

在这里插入图片描述

解决方式:

  • 直接在父类加一个和图片一样的大小。
  • 给图片添加vertical-align:midller|top|bottom等(提倡使用)。
  • 将图片转变为块级元素:display:block

例子:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试文档</title>
    <style>
        div{
            border: 1px solid black;
        }
        img{
            width: 100px;
            height: 100px;
        }
        .d1{
            width: 100px;
            height: 100px;
        }
        .img1{
            vertical-align:top
        }
        .img2{
            display: block;
        }
    </style>
</head>
<body>
<div class="d1">
    <img src="jpg/ys.png" />
</div>
<hr>
<div >
    <img class="img1" src="jpg/ys.png" />
</div>
<hr>
<div  >
    <img class="img2"  src="jpg/ys.png" />
</div>

</body>
</html>

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值