`

自适应布局之div浮动实现

 
阅读更多

自适应布局之table实现一文中,我们初步了解了如何用Table实现自适应宽度的分栏布局。 但由于Table的死板布局约束和一些性能原因,我们通常不会采用基于Table的自适应布局。本文便来介绍一种常用的基于div浮动的分栏布局。 先看效果:

HTML框架

相比于Table布局,基于CSS的布局HTML代码会更加简洁:

<!DOCTYPE html>
<html>
<body>
  <div class="container">
    <div class="left"></div>
    <div class="right"></div>
  </div>
</body>
</html>

首先通过doctype指令让浏览器以HTML5标准来解析该文件,然后在<body>中添加一个容器,他有左右两个子容器构成。 语义上很直观吧!

CSS

基于div浮动的分栏布局的思路是:设置其中一个子容器的float让它脱离文档流,然后另一个正常放置。为了让后一个子容器内可以正常解析父容器宽度,通常会设置后一个容器的左外边距。

.left{
  float: left;
  width: 200px;
  background-color: lightyellow;
}
.right{
  margin-left: 200px;
  background-color: lightblue;
}

为了让页面更加清晰,再来一点辅助样式:

.container{
  margin: 10px;
  border: 1px solid grey;
}
.left, .right{
  height: 300px;
}

至此我们已经完成了基于div浮动的分栏布局。

溢出与滚动

用CSS创建任何容器时,都会面临着容器溢出的问题:如果它的内容太长或者太高容器应当作何反应?上述的分栏布局也存在这样的问题。

比起table布局,浮动布局中容器溢出的问题更加严重。<table>有着非常严(si)格(ban)的布局行为,它不允许两个<td>遮挡、重合、或者任何形式的相互影响(对当前<tr>的作用除外)。

为了让这个问题凸显出来,我们写这样一些HTML代码:

<body>
  <div class="container">
    <div class="left">
      <p>class aptent <br/>taciti<br/> sociosqu <br/>ad<br/> litora <br/>torquent<br/> per <br/>conubia<br/> nostra<br/>,<br/> per<br/> inceptos <br/>taciti<br/> sociosqu<br/> himenaeos<br/>. suspendisse<br/> potenti<br/>. quisque<br/> augue metus<br/>, hendrerit<br/> sit amet<br/>, commodo<br/> vel,<br/> scelerisque ut<br/>, ante<br/>. praesent<br/> euismod euismod<br/> risus.<br/> mauris ut<br/> metus sit<br/> amet mi<br/> cursus commodo<br/>. morbi<br/></p>
    </div>
    <div class="right">
      Vestibulumsuscipitenimacnulla.Prointincidunt.Proinsagittis.Curabiturauctormetusnonmauris.Nunccondimentumnislnonaugue.Donecleourna,dignissimvitae,porttitorut,iaculissitamet,sem.
    </div>
  </div>
</body>

然后页面就变成这样了:

左侧栏发生了垂直方向的高度溢出,而右侧栏发生了水平方向的行溢出。HTML的流式布局行为与排版软件及其相似,对于行溢出的情况应当设置断字属性; 对于高度溢出则应当设置一个滚动条。

.left{
  overflow-y: auto;
}
.right{
  word-break: break-word;
}

现在页面正常了!

版权声明本文由Harttle创作,转载需署名作者且注明文章出处

 

<!DOCTYPE html>

<html>

<head>

<style>

.left{

 float: left;

 width: 200px;

 background-color: lightyellow;

 overflow-y: auto;

}

.right{

 margin-left: 200px;

 background-color: lightblue;

 word-break: break-word;

}

 

.container{

 margin: 10px;

 border: 1px solid grey;

}

.left, .right{

 height: 300px;

}

.clsTeenyWeeny { zoom: 0.10 }

</style>

 

</head>

<body>

  <div class="container">

    <div class="left">

      <p>class aptent <br/>taciti<br/> sociosqu <br/>ad<br/> litora <br/>torquent<br/> per <br/>conubia<br/> nostra<br/>,<br/> per<br/> inceptos <br/>taciti<br/> sociosqu<br/> himenaeos<br/>. suspendisse<br/> potenti<br/>. quisque<br/> augue metus<br/>, hendrerit<br/> sit amet<br/>, commodo<br/> vel,<br/> scelerisque ut<br/>, ante<br/>. praesent<br/> euismod euismod<br/> risus.<br/> mauris ut<br/> metus sit<br/> amet mi<br/> cursus commodo<br/>. morbi<br/></p>

    </div>

    <div class="right">

      Vestibulumsuscipitenimacnulla.Prointincidunt.Proinsagittis.Curabiturauctormetusnonmauris.Nunccondimentumnislnonaugue.Donecleourna,dignissimvitae,porttitorut,iaculissitamet,sem.

    </div>

  </div>

  <P onmouseover="this.style.zoom='200%'" onmouseout="this.style.zoom='normal'">

 

</body>

</html>

https://www.tianmaying.com/tutorial/css-line-wrap

 

分享到:
评论

相关推荐

    div+css模板布局 右侧固定,左侧自适应

    例如,使用Flexbox或Grid进行主内容区的自适应布局,同时配合定位实现固定侧边栏。为了确保兼容性,可以使用CSS预处理器(如Sass或Less)和自动化工具(如Autoprefixer)来处理浏览器前缀和回退方案。 最后,关于...

    css+div自适应窗口宽度

    这里展示了另一种自适应布局的方式,通过浮动元素和固定宽度来分配页面空间。 最后的代码示例中,`.wrap_l`, `.wrap_m`, 和 `.wrap_r`三个类分别代表左、中、右三栏布局。`.wrap_l`和`.wrap_r`分别设置为固定宽度并...

    div+css菜单导航布局自适应宽度

    在自适应布局中,我们可能需要调整盒模型的属性,如设置百分比宽度,使元素宽度随浏览器窗口大小变化。 2. **媒体查询**:媒体查询是CSS3引入的一个功能,用于根据设备的特定特性(如视口宽度)来应用不同的样式。...

    关于自适应布局的处理(利用浮动和margin负边距实现)

    在这篇文章中,我们主要讨论了自适应布局的实现方式,特别是使用浮动和margin负边距的技巧,以及相关的圣杯布局和双飞翼布局。 首先需要了解的是浮动布局。浮动布局是CSS布局的一种方式,通过使用float属性,可以让...

    css 两边固定中间自适应布局的实现

    浮动内嵌div方法则是在浮动的基础上,通过内嵌div对浮动元素进行包裹,让内嵌div实现自适应。内嵌div的宽度通过百分比或者使用负外边距的方式确定,以此来实现自适应。这种方法可以较好地控制布局,但相对更复杂。 ...

    div布局,网页制作

    5. **自适应布局**:自适应布局与响应式布局相似,但更注重内容的适应性而非设计的视觉一致性。`div`可以根据内容的多少自动调整大小,确保内容始终可读且布局清晰。 6. **盒模型布局**:盒模型是理解`div`布局的...

    html图片自适应手机屏幕大小的css写法

    总结以上知识点,我们了解到在HTML中使用CSS实现图片自适应手机屏幕大小的关键在于使用百分比宽度和自动高度的组合,确保盒模型的一致性,以及通过CSS Reset和重置默认布局减少浏览器间的差异。这些方法共同确保了在...

    Div+Css网页版式布局

    在网页设计领域,Div+CSS布局是现代网页版式设计的核心技术之一,它极大地提高了页面的可维护性和表现力。Div(Division)是HTML中的一个容器元素,用于组织和分隔页面内容,而CSS(Cascading Style Sheets)则负责...

    div css 网站布局实录

    在网页设计领域,Div+CSS是构建网页布局的主流技术之一。Div(Division)是HTML中的一个块级元素,常用于组织和分隔页面内容,而CSS(Cascading Style Sheets)则是用来控制网页样式和布局的重要工具。本篇文章将...

    CSS+DIV网页布局实例40例.rar

    3. **响应式布局**:针对不同设备和屏幕尺寸的自适应布局。 4. **浮动布局**:利用浮动元素实现多列布局,解决内容溢出问题。 5. **定位布局**:使用绝对定位和相对定位创建复杂布局,如侧边栏固定、弹窗效果等。 6....

    div+css实现frameset网页布局

    5. **百分比宽度和高度**:通过设置元素的宽度和高度为百分比值,可以实现自适应的布局,适应不同屏幕尺寸。 6. **溢出处理**:使用`overflow`属性可以控制内容超出`div`边界时的行为,如滚动条的显示或者隐藏。 7...

    div+css实现自适应宽度按钮

    答案:浮动布局是一种CSS布局方式,能够使元素浮动在父元素中,实现自适应宽度按钮的效果。 4. 如何使用a标签和span标签来组合出完整的圆角矩形按钮? 答案:可以使用a标签作为按钮的容器,span标签作为按钮的文字...

    Dreamweaver CS6使用Div+CSS布局设计.pdf

    - **宽度自适应布局**:宽度自适应布局允许网页内容根据浏览器窗口大小变化而自动调整宽度。这可以通过设置Div的宽度为百分比实现,例如,设置一个宽度为75%的Div: ```css .responsive-column { width: 75%; ...

    《Div+CSS布局大全》.zip

    5. **流体布局**:利用百分比单位和媒体查询,Div+CSS布局可以实现流体布局,使网页在不同屏幕尺寸下自适应。这对于响应式设计至关重要,确保在手机、平板和桌面电脑上都能提供良好的用户体验。 6. **Flexbox布局**...

    DIV+2BCSS完美布局 DIV+2BCSS完美布局

    5. 使用Flexbox或Grid布局:现代CSS布局模式,如Flexbox和Grid,提供了更强大的布局能力,可以轻松实现等宽列、自适应布局等。 五、学习资源 1. "阅读器下载.htm"可能是一个在线阅读器的链接,用于预览或下载相关...

    DIV布局,网页结构

    通过CSS(层叠样式表)控制DIV元素的位置、大小和其他样式属性,可以实现灵活多变的网页布局效果。 #### DIV布局基本概念 DIV是一种块级元素,能够包含其他的HTML元素,如文本、图片、列表等。在默认情况下,DIV...

    div+css网页标准版式布局大全

    9. **网页布局模式**:如流式布局、固定布局、混合布局、自适应布局等,这些都是构建网页时常见的布局策略。 10. **CSS选择器**:包括类选择器、ID选择器、标签选择器、后代选择器、伪类和伪元素等,它们用于指定...

    javascript瀑布流实现的两种方式:固定列数的浮动布局与绝对定位自适应宽度 (1).docx

    本文将详细介绍两种实现瀑布流布局的方法:**固定列数的浮动布局**与**绝对定位自适应宽度布局**。 #### 一、固定列数的浮动布局 **定义:** 固定列数的浮动布局是通过预先设定好容器的列数,并将每个元素设置为...

    DIV+CSS布局练习

    6. **浮动(float)**:浮动最初是为了实现图文环绕,但在布局中也常被用来创建多列布局。元素设置为浮动后,会从当前的流中移出,向左或向右移动,直到碰到容器边缘或其他浮动元素。 7. **Flexbox(弹性盒布局)**...

Global site tag (gtag.js) - Google Analytics