CSS——行高、字号、超链接

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mintsolace/article/details/78388881

行高:
CSS中所有的行,都有行高。盒模型padding不是直接作用在文字上的,而是作用在行上的。
文字是在自己的行里面居中的,比如文字字号是14px,行高是24px,那么文字上下的距离各为5px。
为了严格保证字在行里面居中,行高和字号一般都是偶数。这样它们的差就是偶数,能被2整除。

单行文本垂直居中:
文本在行里面居中
公式:行高=盒子高,所以这行文本就在盒子里面垂直居中

        p{
            width: 600px;
            height: 60px;
            background-color: yellow;
            margin: 100px;
            line-height: 60px;
            text-align: center;
        }

但是这个小技巧只适用于单行文本垂直居中,不适用于多行。
如果想让多行文本垂直居中,需要设置盒子的padding:

        p{
            width: 600px;
            height: 46px;
            background-color: yellow;
            margin: 100px;
            font-size: 16px;
            padding-top: 14px;
        }
        p{
            width: 600px;
            height: 140px;
            background-color: yellow;
            margin: 100px;
            font-size: 16px;
            line-height: 20px;
            padding-top: 60px;
        }

font属性:
使用font属性,能够一起设置字号、行高、字体:
font: 14px/24px “宋体”;
等价于三行语句:

font-size: 14px;
line-height: 24px;
font-family:"宋体";

font-family就是“字体”,但不是所有字体都能用,因为这个字体要看用户的电脑里装没装。比如设置font-family:”华文彩云”;如果用户电脑里没有这个字体,那么就会变成宋体。
页面中,中文只使用:微软雅黑、宋体、黑体。如果页面中需要其他字体,那么需要切图。
英语:Arial、Times New Roman
为了防止用户电脑里面没有微软雅黑这个字体,那么就要用英语的逗号隔开备选字体,即如果用户电脑里面没有安装微软雅黑字体,那么就是宋体:font-family:”微软雅黑”, “宋体”;
备选字体有无数个,用逗号隔开。
我们要将英语字体放在最前面,这样所有的中文就不能匹配英语字体,就自动变为后面的中文字体:font-family:”Times New Roman”,”微软雅黑”,“宋体”;
所有的中文字体,都有英语别名:
微软雅黑的英语别名:
font-family:”Microsoft YaHei”;
宋体的英语别名:
font-family:”SimSun”;

font属性能够将font-size、line-height、font-family合三为一:
font: 12px/30px “Times New Roman”,”Microsoft YaHei”,”SimSun”;
行高可以用百分比,表示字号的百分之多少。一般来说都是大于100%,因为行高一定要大于字号。
font:12px/200%”宋体”;等价于font: 12px/24px”宋体”;
反过来,比如:
font: 16px/48px”宋体”;等价于font:16px/300%”宋体”;

超级链接的美化:即a标签
1. 伪类
同一个标签,根据用户的某种状态不同,有不同的样式,这就叫做伪类。
类是工程师加的,比如div属于box类,是明确的类。但是a属于什么类要看用户有没有点击,有没有触碰,所以叫做伪类。用冒号来表示。
a标签有4种伪类

    <style type="text/css">
        a:link{
            color:red;
        }
        a:visited{
            color:orange;
        }
        a:hover{
            color:green;
        }
        a:active{
            color:black;
        }
    </style>

:link表示用户没有点击过这个链接的样式
:visited表示用户访问过了这个链接的样式
:hover表示用户鼠标悬停时候的样式
:active表示用户用鼠标点击过这个链接,但是未松开鼠标时的样子。
这四种状态在css中必须按照固定的顺序(如上)来写,如果不按照顺序将会失效。

2.超级链接的美化
a标签在使用时非常难,因为不仅要控制a这个盒子,也要控制它的伪类。
在使用时要将a标签写在前面,:link、:visited、:hover、:active这些伪类写在后面。
a标签中描述盒子;伪类中描述文字的样式、背景。

    <style type="text/css">
        *{
            margin: 0;
            padding: 0;
        }
        .nav{
            width: 960px;
            height: 40px;
            border: 1px solid #000;
            margin: 100px auto;
        }
        .nav ul{
            list-style: none;
        }
        .nav ul li{
            float: left;
            width: 120px;
            height: 40px;
            background-color: lightpink;
            text-align: center;
            line-height: 40px;
        }
        .nav ul li a{
            display: block;
            width: 120px;
            height: 40px;
        }
        .nav ul li a:link,.nav ul li a:visited{
            text-decoration: none;
            background-color: yellowgreen;
            color:white;
        }
        .nav ul li a:hover{
            background-color:red;
            font-weight:bold;
            color:yellow;
        }
    </style>
</head>
<body>
    <div class="nav">
        <ul>
            <li><a href="#">网站</a></li>
            <li><a href="#">网站</a></li>
            <li><a href="#">网站</a></li>
            <li><a href="#">网站</a></li>
            <li><a href="#">网站</a></li>
            <li><a href="#">网站</a></li>
            <li><a href="#">网站</a></li>
            <li><a href="#">网站</a></li>
            <li><a href="#">网站</a></li>
        </ul>
    </div>
</body>

所有的a不继承text、font,因为a自己有一个伪类的权重。
最标准的就是link、visited、hover都要写,但是前端工程师在大量实践中发现不写link、visited浏览器也能兼容,所以a标签也可以简化:
a:link、a:visited都是可以省略的,简写在a标签里面,也就是说a标签涵盖了link、visited状态。

        .nav ul li a{
            display: block;
            width: 120px;
            height: 40px;
            text-decoration: none;
            background-color: yellowgreen;
            color:white;
        }
        .nav ul li a:hover{
            background-color:red;
        }

猜你喜欢

转载自blog.csdn.net/mintsolace/article/details/78388881
今日推荐