分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

CSS几个要点补充

发布时间:2023-09-06 01:29责任编辑:彭小芳关键词:CSS

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

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

 1 ????????<style type="text/css"> 2 ????????????*{ 3 ????????????????margin:0; 4 ????????????????padding:0; 5 ????????????} 6 ????????????.wrapper{ 7 ????????????????height:30px; 8 ????????????????background-color: #123; 9 ????????????}10 ????????????.content{11 ????????????????width: 1200px;12 ????????????????height: 30px;13 ????????????????background-color: #0f0;14 ????????????????margin: 0 auto;/*这里的auto就是自适应的意思,它会随着浏览器框的缩小而减小*/15 ????????????}16 ????????</style>17 ????</head>18 ????<body>19 ?????????<div class="wrapper">20 ?????????????<div class="content"></div>21 ?????????</div>22 ????</body>
View Code

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

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

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

 1 ????<head> 2 ????????<meta charset="UTF-8"> 3 ????????<title>Insert title here</title> 4 ????????<style type="text/css"> 5 ????????????span{ 6 ????????????????width:100px; 7 ????????????????height: 100px; 8 ????????????????background-color: red; 9 ????????????}10 ????????</style>11 ????</head>12 ????<body>13 ?????????<span>123</span>14 ????</body>
View Code

效果如下所示:

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

 1 ????<head> 2 ????????<meta charset="UTF-8"> 3 ????????<title>Insert title here</title> 4 ????????<style type="text/css"> 5 ????????????span{ 6 ????????????????width:100px; 7 ????????????????height: 100px; 8 ????????????????background-color: red; 9 ????????????????position: absolute;10 ????????????}11 ????????</style>12 ????</head>13 ????<body>14 ?????????<span>123</span>15 ????</body>
View Code

这是为什么呢?

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

 1 ????<head> 2 ????????<meta charset="UTF-8"> 3 ????????<title>Insert title here</title> 4 ????????<style type="text/css"> 5 ????????????*{ 6 ????????????????margin:0; 7 ????????????????padding:0; ????8 ????????????} 9 ????????????span{10 ????????????????font-size: 50px;11 ????????????}12 ????????</style>13 ????</head>14 ????<body>15 ?????????<div>16 ?????????????你们刘哥很帅<span>哈哈</span>17 ?????????</div>18 ????</body>
View Code

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

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

1 ????<head>2 ????????<meta charset="UTF-8">3 ????????<title>Insert title here</title>4 ????</head>5 ????<body>6 ?????????<img ?src="1.png">呵呵7 ????</body>

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

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

 1 ????<head> 2 ????????<meta charset="UTF-8"> 3 ????????<title>Insert title here</title> 4 ????????<style type="text/css"> 5 ????????????span{ 6 ????????????????display:inline-block; 7 ????????????????width:100px; 8 ????????????????height:100px; 9 ????????????????background-color: red;10 ????????????}11 ????????</style>12 ????</head>13 ????<body>14 ?????????<span></span>哈哈15 ????</body>
View Code

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

 1 ????<head> 2 ????????<meta charset="UTF-8"> 3 ????????<title>Insert title here</title> 4 ????????<style type="text/css"> 5 ????????????span{ 6 ????????????????display:inline-block; 7 ????????????????width:100px; 8 ????????????????height:100px; 9 ????????????????background-color: red;10 ????????????}11 ????????</style>12 ????</head>13 ????<body>14 ?????????<span>This</span>哈哈15 ????</body>
View Code

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

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

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

 1 ????<head> 2 ????????<meta charset="UTF-8"> 3 ????????<title>Insert title here</title> 4 ????????<style type="text/css"> 5 ????????????span{ 6 ????????????????display:inline-block; 7 ????????????????width:100px; 8 ????????????????height:100px; 9 ????????????????background-color: red;10 ????????????????font-size: 50px;11 ????????????}12 ????????</style>13 ????</head>14 ????<body>15 ?????????<span>This</span>哈哈16 ????</body>
View Code

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

 1 ????<head> 2 ????????<meta charset="UTF-8"> 3 ????????<title>Insert title here</title> 4 ????????<style type="text/css"> 5 ????????????span{ 6 ????????????????display:inline-block; 7 ????????????????width:100px; 8 ????????????????height:100px; 9 ????????????????background-color: red;10 ????????????????font-size: 50px;11 ????????????????vertical-align: -15px;12 ????????????}13 ????????</style>14 ????</head>15 ????<body>16 ?????????<span>This</span>哈哈17 ????</body>
View Code

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

1 ????<body>2 ?????????<div>3 ?????????????<ul style="float: left"></ul>4 ?????????????<ul style="float: right"></ul>5 ?????????</div>6 ????</body>
View Code

CSS几个要点补充

原文地址:http://www.cnblogs.com/python-machine/p/8010719.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved