盒子模型的百分比是根据什么来的

之前一直很模糊,他们的水平和垂直方向上的百分比是根据什么来的?

是根据宽度还是高度呢?

来揭秘一下把。

首先是

margin:

可以看出margin-top和margin-bottom都是根据父容器的宽度来决定的。

比如我这里的margin:10%

父容器的width:800px;height:600px;

结论:margin百分比也是根据父容器的宽度来决定的。不管margin-top还是margin-bottom。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>盒子模型的定位问题</title>
    <style type="text/css">
    *{
        margin: 0;
        padding: 0;
    }
    .container{
        width:800px;
        height:600px;
        margin:10px auto 0;
        border:1px solid #ccc;
        position: relative;
    }
    .div{
        width:100px;
        height:50px;
        background-color:#ccc;
        border:1px dashed #000;
        list-style:none;
    }
    .div1{
        margin:10%;
    }
    </style>
</head>
<body>
    <div class="container">
        <div class="div1 div">margin</div>
    </div>
</body>
</html>

padding:

这里的padding设置的是10%;可以看到padding-top和padding-bottom都是80px;

结论:padding百分比也是根据父容器的宽度来决定的。不管padding-top还是padding-bottom。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>盒子模型的定位问题</title>
    <style type="text/css">
    *{
        margin: 0;
        padding: 0;
    }
    .container{
        width:800px;
        height:600px;
        margin:10px auto 0;
        border:1px solid #ccc;
        position: relative;
    }
    .div{
        width:100px;
        height:50px;
        background-color:#ccc;
        border:1px dashed #000;
        list-style:none;
    }
    .div2{
        padding:10%;
    }
    </style>
</head>
<body>
    <div class="container">
        <div class="div2 div">padding</div>
    </div>
</body>
</html>

position:absolute;

这里的div3设置的属性是position:absolute;top:10%;right:10%;

可以看出解析出来之后top:60px;right:80px;

结论:当position:absolute时,top的百分比是根据父容器高度来计算的,left的百分比是根据父容器的宽度来计算的。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>盒子模型的定位问题</title>
    <style type="text/css">
    *{
        margin: 0;
        padding: 0;
    }
    .container{
        width:800px;
        height:600px;
        margin:10px auto 0;
        border:1px solid #ccc;
        position: relative;
    }
    .div{
        width:100px;
        height:50px;
        background-color:#ccc;
        border:1px dashed #000;
        list-style:none;
    }
    .div3{
        position: absolute;
        top:10%;
        right:10%;
    }
    </style>
</head>
<body>
    <div class="container">
        <div class="div3 div">absolute</div>
    </div>
</body>
</html>

position:relative;

这里的div4设置的属性是position:relative;top:10%;left:10%;

可以看出解析出来之后top:60px;left:80px;

结论:当position:relative时,top的百分比是根据父容器高度来计算的,left的百分比是根据父容器的宽度来计算的。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>盒子模型的定位问题</title>
    <style type="text/css">
    *{
        margin: 0;
        padding: 0;
    }
    .container{
        width:800px;
        height:600px;
        margin:10px auto 0;
        border:1px solid #ccc;
        position: relative;
    }
    .div{
        width:100px;
        height:50px;
        background-color:#ccc;
        border:1px dashed #000;
        list-style:none;
    }
    .div4{
        position: relative;
        top:10%;
        left:10%;
    }
    </style>
</head>
<body>
    <div class="container">
        <div class="div4 div">relative</div>
    </div>
</body>
</html>

width和height:

可以看出,设置宽度百分比和高度百分比是根据父容器的宽度和高度来设置的。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>盒子模型的定位问题</title>
    <style type="text/css">
    *{
        margin: 0;
        padding: 0;
    }
    .container{
        width:800px;
        height:600px;
        margin:10px auto 0;
        border:1px solid #ccc;
        position: relative;
    }
    .div{
        width:100px;
        height:50px;
        background-color:#ccc;
        border:1px dashed #000;
        list-style:none;
    }
    .div5{
        width:10%;
        height:10%;
        float:right;
    }
    </style>
</head>
<body>
    <div class="container">
        <div class="div5 div">width和height</div>
    </div>
</body>
</html>

总结:height、top两个值都是根据父容器的高度来设置的。

padding-top/padding-bottom/padding-left/padding-right、margin-top/margin-bottom/margin-left/margin-right、width、left是根据父容器的宽度来设置的。

路径:http://sandbox.runjs.cn/show/cckc8yek

时间: 2024-10-13 08:03:08

盒子模型的百分比是根据什么来的的相关文章

深入理解CSS盒子模型

前言:前阵子在做一个项目时,在页面布局方面遇到了一点小问题,于是上stackoverflow上求助.ifaou在帮助我解决我问题的同时,还推荐我阅读一篇有关CSS盒子模型的文章<The CSS Box Model>,阅读之后受益匪浅,才知道自己对盒子模型知识还是如此欠缺.恰逢学期末,项目验收后暂时告一段落,有空闲的时间.于是想把这篇文章翻译出来,一方面再给自己一点挑战和锻炼,另一方面也给大家参考,让更多的人受益. 这篇文章适合初级web设计朋友,让你对盒子模型有更近一步的理解.但是在阅读这篇文

盒子模型(Box Model)

盒子模型(Box Model) ■ 盒子模型--概念 在网页设计中常用的属性名:内容(content),填充(padding),边框(border),边界(margin),CSS 盒子模式都具备这些属性. 细节说明: ?html 元素都可以看成一个盒子 ?盒子模型的参照物不一样,则使用的 css 属性不一样.比如:从 div1 的角度看,是 margin-right,从 div2 看,则是 margin-left. ?如果你不希望破坏外观,则尽量使用 margin 布局,因为 padding 可

CSS定位元素--盒子模型

页面版式主要由三个属性控制: position 属性. display 属性和 float 属性.其中,position 属性控制页面上元素间的位置关系, display 属性控制元素是堆叠.并排,还是根本不在页面上出现, float 属性提供控制的方式,以便把元素组成成多栏布局. 盒子模型有关的三个属性 边框(border) .可以设置边框的宽窄.样式和颜色. 内边距(padding) .可以设置盒子内容区与边框的间距. 外边距(margin) .可以设置盒子与相邻元素的间距. 边框(bord

这些HTML、CSS知识点,面试和平时开发都需要 No1-No4(知识点:HTML、CSS、盒子模型、内容布局)

这些HTML.CSS知识点,面试和平时开发都需要 No1-No4 系列知识点汇总 这些HTML.CSS知识点,面试和平时开发都需要 No1-No4(知识点:HTML.CSS.盒子模型.内容布局) 这些HTML.CSS知识点,面试和平时开发都需要 No5-No7(知识点:文字设置.设置背景.数据列表) 这些HTML.CSS知识点,面试和平时开发都需要 No8-No9(知识点:媒体操作.构建表单) 这些HTML.CSS知识点,面试和平时开发都需要 No10-No11(知识点:表格操作.代码编写规则)

CSS基础学习十三:盒子模型

一CSS盒子模型概述 CSS盒子模型规定了元素框处理元素内容.内边距.边框和外边距的方式.一个完整元素包括内容(content),内 边距(填充)(padding),边框(border)和外边距(空白)(margin). 盒子模型图: 元素框的最内部分是实际的内容,直接包围内容的是内边距.内边距呈现了元素的背景.内边距的边缘是边框. 边框以外是外边距,外边距默认是透明的,因此不会遮挡其后的任何元素.故背景应用于由内容和内边距组成的区 域. 内边距.边框和外边距都是可选的,默认值是零.但是,许多元

看书《DIV+CSS商业案例与网页布局开发精讲》_盒子模型、制作logo和banner_随手笔记

一.盒子模型(box model) 一个盒子又4部分组成:content(内容).padding(填充).border(边框)和margin(外边界) 盒子模型有两种: (1)标准W3C盒子模型 (2)IE盒子模型(content包含padding和border) 为了统一标准,让网页能兼容各个浏览器,必须使用标准W3C盒子模型 如何才算使用?答:在网页的顶部加上DOCTYPE声明 二.盒子模型结构详解 1.CSS边框(border)属性 border有3个属性:border-width(宽度)

聊聊css盒子模型

css盒子模型原理: 在网页设计中常听的属性名:内容(content).填充/内边距(padding).边框(border).外边距(margin), CSS盒子模式都具备这些属性. 这些属性我们可以把它转移到我们日常生活中的盒子(箱子)上来理解,日常生活中所见的盒子也就是能装东西的一种箱子,也具有这些属性,所以叫它盒子模式. CSS中, Box Model叫盒子模型(或框模型),Box Model规定了元素内容(element content).内边距(padding).边框(border)

8.2 css3 新增标签 盒子模型 长度单位 颜色 渐变 径像渐变

# CSS3 盒子模型 * box-sizing   值 content-box 默认值 包括所有的值 /                    border-box 只算边框的长与宽 * resize(调节框的大小) *    值 none不允许 / horizontal调节宽度 / vertical调节高度 / both都可以 * outline轮廓边框   `outline:width style color` * outline-width * outline-color * outli

flexbox弹性盒子模型

这几天在做移动端的web开发,遇到了一些问题,之前没有折腾过这方面的东西,这次好好吸收下 css3的flexbox--弹性盒子模型,这个盒模型决定了一个盒子在其他盒子中的分布方式及如何处理可用的空间. 优点:可以很轻松的创建自适应的浏览器窗口的流动布局或自适应字体大小的弹性布局. 1 <body> 2 <div id="box1">1</div> 3 <div id="box2">2</div> 4 <