CSS几个要点补充

时间:2022-11-07 04:43:37

css的font-size属性一定要带px单位,font-weight:700【千万不要带单位哦】就等于font-weight:bold加粗

1.如何像淘宝页面一样,随着浏览器的减小而保持内容区大小不变,减少的只是两边的空白区大小呢?

通过内层div设置margin为0 auto就可以了!

         <style type="text/css">
*{
margin:0;
padding:0;
}
.wrapper{
height:30px;
background-color: #123;
}
.content{
width: 1200px;
height: 30px;
background-color: #0f0;
margin: 0 auto;/*这里的auto就是自适应的意思,它会随着浏览器框的缩小而减小*/
}
</style>
</head>
<body>
<div class="wrapper">
<div class="content"></div>
</div>
</body>

2.HTML中的元素有三种:inline、inline-block、block

通常我们称凡是带了inline、inline-block的元素为文本类元素,也就是凡是带有inline的元素【inline、inline-block】都有文本类特点,所以我们称之为文本类元素!

3.span本来是行级元素,所以我们设置宽和高不好使,如下所示:

     <head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
span{
width:100px;
height: 100px;
background-color: red;
}
</style>
</head>
<body>
<span>123</span>
</body>

效果如下所示:

CSS几个要点补充

如果我们给这个css代码加了:position:absolute或者 float:left/right,那么就会惊奇的看到对span标签设置的宽和高都好使了,如下所示:

     <head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
span{
width:100px;
height: 100px;
background-color: red;
position: absolute;
}
</style>
</head>
<body>
<span>123</span>
</body>

CSS几个要点补充

这是为什么呢?

这是因为一旦我们设置了position:absolute或者 float:left/right,那么系统本身就会在底层自动将该HTML标签的inline转换为inline-block;所以你会看到,一旦我们设置了position:absolute或者 float:left/right,就可以给该标签设置宽和高了!

     <head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
*{
margin:0;
padding:0;
}
span{
font-size: 50px;
}
</style>
</head>
<body>
<div>
你们刘哥很帅<span>哈哈</span>
</div>
</body>

CSS几个要点补充

你会看到,在一行文本里面,实际上文本是底对齐的!这是文本和文本之间的特点

如果我现在把文本和图片放在一起呢?

     <head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<img src="1.png">呵呵
</body>

CSS几个要点补充

效果也是图片和文字是底对齐的!

同理,如果我将一个行级元素变成一个行级块元素,那么行级块元素和文字也是底对齐的!

     <head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
span{
display:inline-block;
width:100px;
height:100px;
background-color: red;
}
</style>
</head>
<body>
<span></span>哈哈
</body>

CSS几个要点补充

上面也是底对齐的,这也没什么问题!但是如果我现在往span标签里面加点内容,如下:

     <head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
span{
display:inline-block;
width:100px;
height:100px;
background-color: red;
}
</style>
</head>
<body>
<span>This</span>哈哈
</body>

CSS几个要点补充

你会看到,这里文字将不是底对齐了,它是和它里面的文字底对齐了!

这就是浏览器的另外一个特点:一旦一个行级块元素或者一个文本类元素里面包含文字了,那么外面的文字就会和它们里面的文字底对齐

如果里面的文字很大的话,依然是和它里面的文字底对齐:

     <head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
span{
display:inline-block;
width:100px;
height:100px;
background-color: red;
font-size: 50px;
}
</style>
</head>
<body>
<span>This</span>哈哈
</body>

CSS几个要点补充

那这里能不能调整一下对齐线呢,难道非要是底对齐么,当然可以调节,这里有个属性叫:vertical-align,该属性值可以为正数像素【3px】,也可以为负数【-5px】,当然也可以是middle、如下所示:

     <head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
span{
display:inline-block;
width:100px;
height:100px;
background-color: red;
font-size: 50px;
vertical-align: -15px;
}
</style>
</head>
<body>
<span>This</span>哈哈
</body>

CSS几个要点补充

4.如何实现像淘宝这样的导航栏,一行文字中的内容一部分靠左,一部分靠右,实际上也很简单,最外层是一个大盒子,里面有两个小盒子,然后一个向左浮动,一个向右浮动就OK了,基本上都是这么实现的,如下所示:

     <body>
<div>
<ul style="float: left"></ul>
<ul style="float: right"></ul>
</div>
</body>