03-页面布局

一、盒子模型

盒模型: 是CSS的基石,指定标签如何显示。它规定了网页元素如何显示以及元素间相互关系。 页面上的每个元素都被当成一个矩形盒子、占据一定的页面控件,这个盒子由内容(content)、内边距(补白/填充/padding)、边框(border)和外边距(margin)组成;
【padding一般用于调整内容位置,margin一般用于调整盒子位置】

二、填充padding

 填充: 
    padding,在设定页面中一个元素内容到元素的边缘(边框)之间的距离,也称之为补白;
 用法:
    > 用来调整内容在容器中的位置关系;
    > 用来调整子元素在父元素中的位置关系;
      注: padding属性需要添加在父元素上;
    > padding值是额外加载元素原有大小之上的,如果想要保证元素大小不变(盒子大小),即元素宽高上减去添加的padding属性值;
 说明:
    可单独设置方向填充,如:
      padding-top: 10px; 
      padding-right: 10px;
      padding-bottom: 10px;
      padding-left: 10px;
 属性值的4种方式:
   四个值:上 右 下 左 { padding: 10px 20px 30px 40px; }  注: 起点在12,顺时针方向
   三个值:上 左右 下 { padding: 10px 20px 30px;}
   二个值:上下 左右 { padding: 10px 20px;}
   一个值:四个方向 { padding: 2px;  }定义元素四周填充为2px

三、边框border

 简写方式: 
   border: 3px solid red; // 粗细(数值+单位) (solid/dashed/dotted/double)  颜色
 说明: 
   右边框:border-right:线型(solid/dashed/dotted/double)  粗细(数值+单位) 颜色;
   左边框: border-left:线形(solid/dashed/dotted/double)   粗细(数值+单位) 颜色;
   上边框: border-top:线形(solid/dashed/dotted/double)    粗细(数值+单位) 颜色;
   下边框: border-bottom:线形(solid/dashed/dotted/double) 粗细(数值+单位) 颜色;
 备注: 
   border-width 边框的粗细
   border-style 边框的线型
   border-color  边框的颜色
   solid:实线,dashed:虚线,dotted:点状线,double:双线

四、外边距margin

  边界: 
    margin,在元素外边的空白区域,被称之为边距;
  说明:
   margin-left: 10px;
   margin-right: 10px;
   margin-top: 10px;
   margin-bottom: 10px;
  属性值的4种方式:
   四个值:上 右 下 左 {margin: 10px 10px 10px 10px;}
   三个值:上 左右 下 {margin: 10px 20px 10px;}
   二个值:上下 左右 【margin: 0 auto; 即表示上下边距为0,左右边距为自动】
   一个值:四个方向 margin:2px; 定义元素四边边界为2px

五、浮动属性

 语法: 
    float:none/left/right;
 说明:
    float:定义网页中其它文本如何环绕该元素
    left:元素活动浮动在文本左面
    right:元素浮动在右面
    none:默认值,不浮动。
 备注:
    浮动框可以向左或右边移动,直到它的边缘碰到包含边框或另外一个浮动框的边框为止;
    浮动框是脱离了普通的文档流;

  例如:
    #box{width:300px; height:300px; background: red}
    #minBox1,#minBox2,#minBox3{width:100px; height:100px;}
    #minBox1{background:blue; float:right;}
    #minBox2{background:purple; }
    #minBox3{background:gray; float:}

六、position 定位

  语法:
     position:static /absolute/relative/fixed

  • static: 默认值,无特殊定位,对象遵循HTML原则;

  • absolute: 绝对定位,将对象从文档流中拖离出来,使用left/right/top/bottom等属性相对其最接近的一个并有定位(absolute/relative)设置的父元素进行绝对定位;若没有父元素,则以html、body,浏览器的位置为相对位置,而其层叠通过z-index属性定义;(相对于谁?)

  • relative: 相对定位,对象不可层叠,将依据right,top,left,bottom(相对定位)等属性在正常文档流中偏移位置(相对于谁呢?相对于它自己本身,即是在原来位置上偏移,而且注意原有位置就是在保留的);

  • fixed: (固定定位),对象定位遵从绝对定位方式;

例如: 教室中的学生位置,绝对定位就像是大学的教室位置,人不在了,其他人就可以占用这个位置;
而相对位置就像小学生,请假了,虽然人不在,但是其他同学也不能占他的位置;
虽然学生都不在位置上,但是两种效果是不同的;

七、绝对定位和相对定位的区别

  • 参照物不同,绝对定位的参照物是包含块(父级),相对定位的参照物是元素本身位置;
  • 绝对定位将对象从文档流中拖离出来因此不占据空间,相对定位不破坏正常的文档流顺序无论是否进行移动,元素仍然占据原来的空间;

八、包含块的概念及作用

  • 包含块是绝对定位的基础,包含块就是为决定定位元素提供坐标,偏移和显示范围的参照物,即确定绝对定位的偏移起点和百分比长度的参考;【包含块是参照物】
  • 默认状态下,body是一个大的包含块,所有绝对定位的元素都是根据窗口来定自己所处的位置和百分比大小的显示的,如果我们定义了包含元素为包含元素块以后,对于被包含的绝对定位元素来说,就会根据最接近的具有定位功能的上级包含元素来定位自己的显示位置。
    (定义元素为包含块:给绝对定位元素的父元素添加声明position:relative;)

九、定位元素层叠属性

 语法:
    z-index : auto | number // 检索或设置对象的层叠顺序

 说明:
    auto:默认值,遵从其父对象;
    number:无单位的整数值,可为负数;

 备注:
    > 较大 number 值的对象会覆盖在较小 number 值的对象之上。如两个绝对定位对象的此属性具有同样的 number 值,那么将依据它们在HTML文档中声明的顺序层叠;
    > 此属性仅仅作用于 position 属性值为 relative 或 absolute 的对象;
    > 除了可以调整层级以外,其实可以通过层级将某元素给隐藏;

十、溢出属性overflow

 语法:
    overflow:visible/hidden(隐藏)/scroll/auto(自动)/inherit;
 说明:
    visible:默认值,内容不会被修剪,会成现在元素框之外;
    hidden:内容会被修剪,并且其余内容是不可见的;
    scroll:内容会被修剪,但是浏览器会显示滚动条,以便查看其余的内容;
    auto:如果内容被修剪,则浏览器会显示滚动条,以便查看其他的内容;
    inherit: 规定应该从父元素继承overflow属性的值(父级元素是什么属性值,它就是什么属性值);

问题1: 如果大盒子中嵌套小盒子,为了防止小盒子在设置margin时,大盒子受到的影响(小盒子顶部没有任何的效果),解决方式是在大盒子中添加overflow:hidden;属性;

问题2: 同级盒子中,如果出现都添加margin值,在重合位置中(上下),会有问题,只有最大值有效(而不是两个值之和margin-bottom + margin-top);

十一、文本溢出属性text-overflow

 语法:
    text-overflow: clip  /  ellipsis
 说明:
    clip:不显示省略号(...),而是简单的裁切;(不显示省略号)
    ellipsis:当对象内文本溢出时,显示省略标记;(显示省略号)

text-overflow属性,当文本溢出时是否显示省略标记,并不具备其它的样式属性定义,要实现溢出时产生省略号的效果还需定义:
1、容器宽度: width:value;(px、%,都可以);
2、强制文本在一行内显示: white-space:nowrap; // nowrap属性:文本不会换行,文本会在同一行上继续,直到遇到
标签为止(pre和nowrap样式一样);
3、溢出内容为隐藏: overflow:hidden;
4、溢出文本显示省略号: text-overflow:ellipsis;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,980评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,178评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,868评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,498评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,492评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,521评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,910评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,569评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,793评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,559评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,639评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,342评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,931评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,904评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,144评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,833评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,350评论 2 342

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,722评论 1 92
  • 一、盒子模型 盒模型: 是CSS的基石,指定标签如何显示。它规定了网页元素如何显示以及元素间相互关系。 页面上的每...
    EndEvent阅读 762评论 0 2
  • 1. 前言 前端圈有个“梗”:在面试时,问个css的position属性能刷掉一半人,其中不乏工作四五年的同学。在...
    YjWorld阅读 4,418评论 5 15
  • 学会使用CSS选择器熟记CSS样式和外观属性熟练掌握CSS各种选择器熟练掌握CSS各种选择器熟练掌握CSS三种显示...
    七彩小鹿阅读 6,303评论 2 66
  • 繁华的上海是国际化大都会,夜晚华灯璀璨让你不眠不休的high,生活在上海让你看上去很fashion,但生活在这座城...
    德康明医汇阅读 339评论 0 0