2、定位概念

上一节熟悉了盒模型, 现在来看一下可视化格式模型和定位模型。 理解这两个模型的细微差异是非常重要的, 因为它们一起控制着如何在页面上布置每个元素

2.1 可视化格式模型

CSS有三种基本的定位机制:普通流、 浮动、绝对定位。 除非专门指定, 否则所有框都在普通流中定位。

在普通流中元素框的位置由元素在HTML中的位置决定。

p、h1或div等元素常被称为块级元素, 这意味着这些元素显示为一块内容, 即“块框”。 与之相反, a和span等元素被称为行内元素, 因为他们的内容显示在行中, 即“行内框”。

可以使用display属性改变生成的框的类型。 通过将display设置为block,可以让行内元素表现得像块级元素一样。将display属性设置为none, 让生成的元素根本没有框。 这样,这个框及所有内容就不再显示, 不占用文档的空间

visibility:hidden 只是隐藏了元素的可见性,所占用的文档空间并未消失, 这就是它与display:hidden的区别。

  • 块级框从上至下一个接一个地垂直排列, 框之间的垂直距离由框的垂直外边距计算出来。
  • 行内框在一行中水平排列。 可以使用水平内边距、边框和外边距调整它们的水平间距。 但是垂直内边距、边框和外边距不影响行内框的高度(行内框在文档中的位置)。 同样, 在行内框上设置显式的宽高也没有影响。

    由一行形成的水平框称为行框, 行框的高度总是足以容纳它包含的所有行内框。 但是,设置行高可以增加这个框的高度。 因此, 修改行内框尺寸唯一方法是修改行高或者水平边框,水平内边距或水平外边距

我们来看下面几个例子:

例1:

html

 <div></div><a href=""></a><a href=""></a><div></div>    

css

 body{
     padding:0;
     margin:0; 
     font-size:0;
 }

 a {
     background:#000;
     padding:5px 20px;
     border:3px solid #FF0;
     margin:10px;  
     font-size:0; 
     height:10px;
     width:500px;

 }

 div {
     background:#ccc;
     height:20px;
     font-size:12px;
     margin:0;
     border:1px solid #ff0000;
 }
View Code

效果:

CSS概念 - 可视化格式模型(二) 定位概述(普通流、绝对定位)

在上面这个例子中, 给行内元素a, 设置了宽高、内边距、边框、外边距。 在这其中宽高并未起作用, 垂直方向上的内边距、边框、外边距也并未改变元素的尺寸, 也就是说并未改变元素在文档中的位置, 高度仍然是0, 所以我们看到a元素上下的两个div元素相邻,并未被a元素隔开。

把上边的例子稍微改一下, 给a设置设置行高, 看一下效果:

例2:

CSS

 body{
     padding:0;
     margin:0; 
     font-size:0;
 }

 a {
     background:#000;
     padding:5px 20px;
     border:3px solid #FF0;
     margin:10px;  
     font-size:0; 
     height:10px;
     width:500px;
     line-height:16px;

 }

 div {
     background:#ccc;
     height:20px;
     font-size:12px;
     margin:0;
     border:1px solid #ff0000;
 }
View Code

相关文章:

  • 2022-12-23
  • 2021-05-22
  • 2022-12-23
  • 2021-12-03
  • 2021-08-18
  • 2021-06-26
  • 2021-09-22
  • 2022-12-23
猜你喜欢
  • 2021-10-15
  • 2021-11-06
  • 2021-12-17
  • 2022-12-23
  • 2022-12-23
  • 2021-12-26
  • 2021-08-07
相关资源
相似解决方案