码迷,mamicode.com
首页 > Web开发 > 详细

Web前端从入门到精通-11 css简介

时间:2015-09-13 11:52:01      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:

欢迎大家回来,上节课我们又说了margin的一个bug

那就是子元素的margin-top会传递给父元素

解决方案也已经给出来了,在此不再废话

此外还说了默认样式的清零,这个的话我个人感觉无所谓了

平时自己写代码测试的时候就直接上*{margin:0; padding:0;}

之前我们讲解盒模型的时候一直都是拿div举例子

那么我们知道,div天生就是个块元素

所以我们之前见到的那一堆margin、padding的规则都是针对块元素的

那不知道大家有没有自己测试过内嵌元素的盒模型

我们接下来就和大家一起测试一下内嵌元素的盒模型

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>xxx</title>
    <style type="text/css">
    *{margin:0; padding:0;}
    .aaa{padding:10px; background: gray; border:1px solid black; margin:10px;}
    </style>
</head>
<body>
    <a href="javascript:;" class="aaa">a链接</a>
</body>
</html>

浏览器中预览,F12

技术分享

在这里的,我只是想告诉大家

盒模型并不是只有块元素才有

内联元素也可以有盒模型,但是内联的盒模型体现的不是特别好

也是由于这个原因,我们平时很少直接给内联元素加margin或者padding

注意,我说的是直接给内联元素加

既然这样,那证明还是有办法让我们的内联元素完好的支持盒模型的

解决的方案就是将内联变成块

在前面我们曾经介绍过了,html元素分为块元素和内联元素

实际上这是浏览器默认给我们的结果

也就是说,如果我们不做任何处理,浏览器就默认div是块,a是内联

但其实元素是块还是内联是可以在CSS中通过一个样式属性控制的

这个样式属性就是display

display如果设置成inline,那就是内联,设置成block,那就是块

换句话说,我们再给上面的a标签加一条display:block;

就可以将其转换为一个块元素

加上之后,效果如下

技术分享

我们可以给a加上width和height进一步验证我们的猜想

.aaa{padding:10px; background: gray; border:1px solid black; margin:10px; display: block; width:100px; height: 100px;}

技术分享

现在,它就变得支持宽高了

其实这种操作在我们平时用的也不是很多

因为如果你需要一个块元素的时候直接用块元素

需要内联元素的时候就用内联元素就可以了

干嘛非得转来转去的呢

好的,到目前为止,我们的盒模型终于可以告一段落了

我们可以总结一下

元素本身就有一个width,height

但是这个width和height并不一定是它在浏览器上所占的位置的大小

在width和height的外面可能会有一圈padding

在padding的外面还可能会有一圈border

在border的外面还可能会有一圈margin

说到这里,我们就不得不再一次提到我们chrome浏览器强大的F12技术分享

好的,这节课我们对盒模型的最后一点内容作了介绍

并简单总结了盒模型的结构

有了这些基础之后我们可以牛刀小试一把了

我们下节课再见

 

Web前端从入门到精通-11 css简介

标签:

原文地址:http://www.cnblogs.com/zhaohuiziwo901/p/4784141.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!