`
m635674608
  • 浏览: 5028156 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

两个div横向排列,顶端对齐的方式。

 
阅读更多

两个div横向排列,顶端对齐的方式。

1、左右两个div都设置为float:left,如果右边div没有设置宽度,右边div的宽度会根据div里的内容自动调整。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"
/>

<title>无标题文档</title>

<style type="text/css">

* { margin: 0; padding:0;}

.left {

float:
left;

width: 200px;

height: 200px;

background:#009966;

}

.right {

height: 200px;

background: #FF6633;

float:left;

}

</style>

</head>

 

<body>

<div class="left">I am left</div>

<div class="right">I am right</div>

</body>

</html>

2、只有左侧div设置为float:left,右侧div设置overflow:auto;,右侧div将会占据整个右侧剩余宽度。


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"
/>

<title>无标题文档</title>

<style type="text/css">

* { margin: 0; padding:0;}

.left {

float:
left;

width: 200px;

height: 200px;

background:#009966;

}

.right {

height: 200px;

background: #FF6633;

overflow:auto;

}

</style>

</head>

 

<body>

<div class="left">I am left</div>

<div class="right">I am right</div>

</body>

</html>

3、两个div都设置为display:
inline-block;这样可能会出现两个div顶端不对齐的情况,可以在右侧div设置
vertical-align: top;


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"
/>

<title>无标题文档</title>

<style type="text/css">

* { margin: 0; padding:0;}

.left {

display:
inline-block;

width: 200px;

height: 200px;

background:#009966;

}

.right {

height: 200px;

background: #FF6633;

display:
inline-block;

vertical-align: top;  //与左侧div顶部对齐

}

</style>

</head>

 

<body>

<div class="left">I am left</div>

<div class="right">I am right</div>

</body>

</html>
 
 

display:inline、block、inline-block的区别

display:block就是将元素显示为块级元素.

  block元素的特点是:
  总是在新行上开始;
  高度,行高以及顶和底边距都可控制;
  宽度缺省是它的容器的100%,除非设定一个宽度
  <div>, <p>, <h1>, <form>, <ul> 和 <li>是块元素的例子。

  display:inline就是将元素显示为行内元素.

  inline元素的特点是:
  和其他元素都在一行上;
  高,行高及顶和底边距不可改变;
  宽度就是它的文字或图片的宽度,不可改变。
  <span>, <a>, <label>, <input>, <img>, <strong> 和<em>是inline元素的例子。

  inline和block可以控制一个元素的行宽高等特性,需要切换的情况如下:

  让一个inline元素从新行开始;
  让块元素和其他元素保持在一行上;
  控制inline元素的宽度(对导航条特别有用);
  控制inline元素的高度;
  无须设定宽度即可为一个块元素设定与文字同宽的背景色。

  display:inline-block将对象呈递为内联对象,但是对象的内容作为块对象呈递。旁边的内联对象会被呈递在同一行内,允许空格。

  inline-block的元素特点:

  将对象呈递为内联对象,但是对象的内容作为块对象呈递。旁边的内联对象会被呈递在同一行内,允许空格。(准确地说,应用此特性的元素呈现为内联对象,周围元素保持在同一行,但可以设置宽度和高度地块元素的属性)

  并不是所有浏览器都支持此属性,目前支持的浏览器有:Opera、Safari在IE中对内联元素使用display:inline-block,IE是不识别的,但使用display:inline-block在IE下会触发layout,从而使内联元素拥有了display:inline-block属性的表症。从上面的这个分析,也不难理解为什么IE下,对块元素设置display:inline-block属性无法实现inline-block的效果。这时块元素仅仅是被display:inline-block触发了layout,而它本就是行布局,所以触发后,块元素依然还是行布局,而不会如Opera中块元素呈递为内联对象。

  IE下块元素如何实现display:inline-block的效果?

  有两种方法:
  1、先使用display:inline-block属性触发块元素,然后再定义display:inline,让块元素呈递为内联对象(两个display要先后放在两个CSS声明中才有效果,这是IE的一个经典bug,如果先定义了display:inline-block,然后再将display设回inline或block,layout不会消失)。代码如下(...为省略的其他属性内容):

  div {display:inline-block;...}
  div {display:inline;}

  2、直接让块元素设置为内联对象呈递(设置属性display:inline),然后触发块元素的layout(如:zoom:1等)。代码如下:

  div {display:inline; zoom:1;...}

  以下用个例子来说明三者的区别和用
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>display:inline、block、inline-block的区别</title>
</head>
<style>
div,span{background-color:green;margin:5px;border:1px solid #333;padding:5px;height:52px;color:#fff;}
.b{display:block;}
.i{display:inline;}
div.ib{display:inline-block;}
div.ib{display:inline;}
a.ib{display:inline-block;}
a.ib{display:block;}
span.v{padding:0;margin:0;border:0;vertical-align:middle;height:100%}
</style>
<body>
<div>div display:block</div>
<div class="i">div display:inline</div>
<div class="ib">div display:inline-block</div>
<span>span display:inline</span>
<span class="b">span display:block</span>
<span><a class="ib">a display:block</a></span><br />
<div><span class="v"></span>vertical-align:middle</div>
</body>
</html>

 

http://www.cnblogs.com/itjeff/p/3897305.html

分享到:
评论

相关推荐

    div横向排列

    当我们需要将多个`div`元素水平(横向)排列时,有多种方法可以实现这一目标。下面将详细介绍几种常见的`div`横向排列技术。 1. **使用浮动(Float)** 浮动是早期网页布局常用的一种方法。通过设置`div`的`float`...

    CSS+DIV设计实例:实现让多个DIV排列时居中

    CSS+DIV设计实例:实现让多个DIV排列时居中.txt

    div+css横向布局

    div+css横向布局

    交换两个div的位置

    ### 交换两个div的位置 #### 知识点详解 在前端开发中,有时我们需要通过JavaScript来动态地调整页面元素的位置,比如实现两个`&lt;div&gt;`元素的位置互换。本篇文章将详细解析如何通过JavaScript实现这一功能,并深入...

    两个DIV同一行显示

    在网页设计与开发中,如何让两个或多个`&lt;div&gt;`元素在同一行显示是一个常见的需求。这涉及到CSS(层叠样式表)的布局控制技术,是前端开发的基础技能之一。根据给定的文件信息,我们可以深入探讨这一主题,了解如何...

    css+div实现精美导航条 横向排列下拉子菜单

    通过上述步骤,我们可以创建一个美观且功能完善的CSS+Div导航条,包含横向排列的下拉子菜单,并利用JavaScript增强其交互性和视觉效果。这种设计方法既满足了网页的基本需求,也提供了良好的用户体验。在实际开发中...

    让横向排列的几个浮动(float:left)的子div居中显示

    3. 在外层容器内部创建一个内层容器(containerdiv),这个容器将包含需要横向排列的浮动子div。 4. 为内层容器设置display:inline-block样式,这会使得该容器表现为内联块级元素,可以接受文本对齐样式。 5. 对内层...

    实现让多个DIV排列时居中

    实现让多个DIV排列时居中 css div 并列居中

    div横向选择_相框横向浏览

    标题“div横向选择_相框横向浏览”暗示了我们讨论的核心是关于HTML中`div`元素的使用,特别是在创建一个可以横向滚动或浏览的相框布局。这种布局常见于图片展示、产品目录或其他需要水平展示内容的场景。下面将详细...

    div按圆形排列

    前端开发,JavaScript,元素按照圆形排列布局,简洁方便。

    div横向选择_相框横向浏览2.0

    在IT行业中,"div横向选择_相框横向浏览2.0"是一个关于前端网页开发的项目,主要关注的是用户界面的交互设计,特别是图片展示的布局方式。这种设计模式通常用于图片画廊或者产品展示,使得用户可以方便地横向浏览一...

    div+css布局制作横向带箭头步骤流程样式

    通过以上步骤,我们可以成功地使用`div+css`布局创建一个横向带箭头的步骤流程样式。这不仅有助于用户理解流程,还能提升网站的视觉吸引力和用户体验。在实际项目中,还可以根据具体需求进行定制和优化,如添加动画...

    拖动div到另一个div中

    在网页开发中,"拖放"(Drag and Drop)功能是一项常见的交互设计,它允许用户通过鼠标或其他输入设备将一个元素(例如一个div)从一个位置拖曳到另一个位置。这个过程涉及到HTML5中的拖放API,它可以为用户提供直观...

    div+css+ul-li制作横向导航栏

    首先,我们需要创建一个`&lt;div&gt;`作为导航栏容器,然后在其中嵌套一个`&lt;ul&gt;`标签,`&lt;ul&gt;`中包含多个`&lt;li&gt;`标签,每个`&lt;li&gt;`代表一个导航链接: ```html &lt;div id="navbar"&gt; &lt;li&gt;&lt;a href="#"&gt;首页&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a ...

    两个DIV的相对位置(右上角)

    本主题将深入探讨“两个DIV的相对位置(右上角)”这一概念,结合给出的标签“源码”和“工具”,我们将讨论如何通过CSS(层叠样式表)来实现这个目标。 首先,理解CSS定位机制是必要的。它主要包括静态定位、相对...

    让几个横向排列的浮动子div居中显示的方法

    5. 最后,将子div(例如`float1`和`float2`)设置为`float:left`,使它们横向排列。 这样,尽管子div是浮动的,但由于内层div(containerdiv)被外层div(outerdiv)居中,整个结构仍然可以实现居中对齐的效果。这...

    div应用横向菜单效果演示

    这通常包括设置`display`属性为`inline-block`,这样多个`div`元素就能在同一行排列,而不是默认的换行显示。同时,需要设置适当的`width`和`padding`,以控制菜单项的大小和间距。 接下来,为了实现菜单的水平布局...

    网站设计Div垂直对齐方法

    Div垂直对齐 CSS+Div 底端对齐 垂直对齐

    两个div+css整站的例子

    这样,两个Div就会并排显示,直到其中一栏的内容填满其容器,然后另一栏才会在其下方继续排列。 2. **定位布局**:除了浮动,还可以使用绝对定位(absolute positioning)或相对定位(relative positioning)来控制...

Global site tag (gtag.js) - Google Analytics