页面布局

Posted roc-atlantis

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了页面布局相关的知识,希望对你有一定的参考价值。

回顾

列表

  • 无序列表 ul li

  • 有序列表 ol li

  • 定义列表 dl dt dd

  • 相关css属性 list-style list-style-type list-style-image list-style-position

表格

  • 标签 table caption thead tbody tfoot tr th td

  • colspan rowspan td/th 的属性

  • CSS属性: table-layout、border-collapse 、border-sapcing、 caption-side、 empty-cells

表单

  • input type(text、password、radio、checkbox、file、url、email、tel、search、range、color、date、time、week、month、datetime-local、number、button、submit、reset)

  • select option

  • textarea

  • button

  • 属性:placeholder(H5)、disable、enable、readonly、 required、pattern、 autocomplete=“on/off” title autofocus

视频

  • video src autoplay loop poster preload controls

  • audio src

  • source src

 

 

页面布局

有些CSS属性,后代元素会集成祖先元素的设置。font类型、color、文本属性

有些CSS属性,不会继承祖先元素。布局相关、border、背景

 

1 盒子模型

1.1 定义

  • 任意一个元素都可以当做盒子模型

  • 盒子的大小 内容宽高(width/height) + 边距(padding)+边框(border)

  • 盒子有外边距,影响盒子的位置

1.2 块状元素和内联元素

块状(块级)

  • 能够独占一行

  • 默认宽度是父元素的宽,高度是自动(被内容撑开)

内联(行内)

  • 不能独占一行

  • 默认宽度是自动(被内容撑开),高度也是自动

  • 大部分内联元素设置宽高无效,设置内边距有效但是影响其他元素

  • margin可以设置左右,不能设置 上下的

  • CSS的文本属性 会对内联元素生效

补充:

 1.块级元素:

     在html中<div>、 <p>、<h1>、<form>、<ul> 和 <li>就是块级元素。设置display:block就是将元素显示为块级元素。块级元素特点:

      (1)、每个块级元素都从新的一行开始,并且其后的元素也另起一行;(一个块级元素独占一行)

      (2)、元素的高度、宽度、行高以及顶和底边距都可设置;

      (3)、元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致),除非设定一个宽度。

      2.内联元素:

      在html中,<span>、<a>、<label>、<input>、 <img>、 <strong> 和<em>就是典型的内联元素(行内元素)(inline)元素。当然块状元素也可以通    过代码display:inline将元素设置为内联元素。内联元素特点:

       (1)、和其他元素都在一行上;

       (2)、元素的高度、宽度、行高及顶部和底部边距不可设置;

       (3)、元素的宽度就是它包含的文字或图片的宽度,不可改变。

      注意:为 a 元素设置了宽和高,但都没有起到作用,原因是a在默认的时候是内联元素,内联元素是不可以设置宽和高的。

     3.内联块状元素:

      内联块状元素(inline-block)就是同时具备内联元素、块状元素的特点,代码display:inline-block就是将元素设置为内联块状元素。inline-block元素特点:

       (1)、和其他元素都在一行上;

       (2)、元素的高度、宽度、行高以及顶和底边距都可设置。

       注意:img是inline元素,但是他同时也是替换元素,他有着特殊的表现:

          1. 可以设置width/height;

          2. 默认的,img元素在屏幕占据的空间与其图片的实际像素一致,除非CSS有设置或者自身的width/height HTML 属性有设置;

          3. 如果img标签的包裹元素为也为inline元素,则img的边界可以超出其直接父元素的边界,直到自己的宽、高达到最大或者设定值为止,而且文档流中img的兄弟元素也不能遮盖住img。最常见的就是<a>里面包含的<img>;

          4. 所以从行为上看,img元素作为替换元素,有着类似于Inline-block的行为,尽管在SPEC里面,他的确是一个inline元素。

1.3 盒子模型和盒子模型之间的关系

document树

父元素  子元素   后代元素   祖先元素    兄弟元素

标准文档流

  • 块状元素 独占一行

  • 内联共享一行

盒子在文档模型的位置

  • 给盒子设置边距, 前面有兄弟元素,距离兄弟元素的距离。 没有距离父元素的内容的距离

  • 垂直方向的margin会塌陷。 上(margin-bottom)下(margin-top)两个元素之间的距离,取最大。 水平方向没有这个问题

  • 父子元素,给子元素设置垂直方向的margin,同样会产生塌陷。 解决: 给父元素设置边框 或者 overflow:hidden

  • margin可以设置为负值

 

1.4 布局相关属性

display

  • block 设置块

  • inline 设置为内联

  • inline-block 兼具两者 有些html元素,默认就是inline-block (img, input, textarea .td,th)

  • none 隐藏

布局相关

  • visibility: visible/hidden

  • overflow: hidden/auto/scroll/visible

  • overflow-x

  • overflow-y

尺寸

  • width / max-width / min-width

  • height / max-height / min-height

内边距

外边距

  • margin 4个值 3 2 1

  • margin-left

  • margin-top

  • margin-bottom

  • margin-right

 

 

作业

  • 总结学过的元素, 块 内联 (inline-block的特征)

  • 总结所有的HTML元素, 所有的CSS属性。

 

以上是关于页面布局的主要内容,如果未能解决你的问题,请参考以下文章

如何通过单击片段内的线性布局从片段类开始新活动?下面是我的代码,但这不起作用

Spring boot:thymeleaf 没有正确渲染片段

Android ViewPager 适配器修改其他页面

没有滚动内容时如何下拉协调器布局

Wordpress - 将代码片段包含到布局的选定部分的插件

有没有更聪明的方法将布局绑定到片段?