CSS二栏布局的实现小结
两列布局可能是最典型的网页布局形式,而这个博客是使用的布局。在两列布局中,最常见的情况是主要是自适应宽度,侧边栏是固定宽度。今天,好好看看如何使用自适应宽度+自适应实现这两列布局。
1。绝对+边界模式
首先要考虑的是绝对+边距的使用:
xml代码将内容复制到剪贴板。
子列
主要栏目
CSS代码将内容复制到剪贴板。
{容器。
职位:相对;
}
{。侧边栏
位置:绝对;
顶部:0;
左:0;
宽度:200px;
身高:300px;
背景颜色:RGBA(255, 0, 0。5);
}
{为主。
身高:300px;
左:210px保证金;
背景颜色:RGBA(0, 255, 0。5);
}
此方法使用位置将边栏列从文档流中去掉,然后通过主列的左边部分删除边栏列所覆盖的部分,从而实现了固定宽度+自适应的两列布局。
(1)序列调整
没有修改HTML,CSS只简单修改,我们可以让左、右两列互换为了看代码:
CSS代码将内容复制到剪贴板。
{。侧边栏
位置:绝对;
顶部:0;
错误:0;
}
{为主。
右边距:210px;
}
(2)主内容列的优先显示
让我们更完美地考虑它。你能把主体放在边栏栏前面,让主内容优先加载渲染吗让我们试试看!
xml代码将内容复制到剪贴板。
主要栏目
子列
做上述简单的调整,CSS不需要任何修改!
(3)问题是
尽管这种方式有很多优点,但存在一个致命的缺陷:因为从文档流中的边栏列,当侧边栏的主栏将覆盖在布局后面的高线公园时:演示。
如果添加溢出:隐藏在容器容器上,则会减少侧边栏溢出部分。在这个布局中,没有有效的解决方案。
2。浮动+余量模式
然后我想到了浮动+余量来实现两列布局,首先实现了左栏宽度,主要内容是自适应的两栏布局:
xml代码将内容复制到剪贴板。
子列
主要栏目
CSS代码将内容复制到剪贴板。
{。侧边栏
浮点数:左;
宽度:200px;
身高:300px;
背景颜色:RGBA(255, 0, 0。5);
}
{为主。
身高:300px;
左:210px保证金;
背景颜色:RGBA(0, 255, 0。5);
}
这个实现相对简单,第一个列句柄向左浮动,然后在主列中设置空白,以显示空间到子列。
那么,这种方式不支持交换列的位置吗当然。CSS代码如下所示:
CSS代码将内容复制到剪贴板。
{。侧边栏
浮:错误;
宽度:200px;
身高:300px;
背景颜色:RGBA(255, 0, 0。5);
}
{为主。
身高:300px;
右边距:210px;
背景颜色:RGBA(0, 255, 0。5);
}
问题是:
看来浮动+余量方法是一个很好的方法,但是我们在前面的第一个显示中提到的优化是不能实现的。
三.浮动+负边距模式
不多说,直接在代码上:
xml代码将内容复制到剪贴板。
主要栏目
子列
CSS代码将内容复制到剪贴板。
{主包装器
浮点数:左;
宽度:100%;
}
{为主。
身高:100px;
左:210px保证金;
背景颜色:RGBA(255, 0, 0。5);
}
{。侧边栏
浮点数:左;
宽度:200px;
身高:100px;
左缘:- 100%;
背景颜色:RGBA(0, 255, 0。5);
}
每个人都应该看到它,这是双翼布局,主栏首先显示出来:
首先,浮动主栏和边栏列,然后以负边距正确地定位边栏列。
主列嵌套在div中,div的宽度值设置为100%。
最后,我们可以通过设置主列的边距来消除侧栏所覆盖的部分。