`
DBear
  • 浏览: 231217 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类

如何使按钮和文字排在一行且对齐(CSS之display:inline-block的妙用)

阅读更多

我们在开发页面的时候添加"按钮"是必不可少的,而一个按钮旁边往往不一定都是另一个按钮,还可能是一串文字。完成这一简单的效果却要思考很多问题。

 

1. 按钮和文字排在一行的解决方案

2. 按钮中文字与外边文字底部自动对齐的解决方案

 

 

对于问题1,我们通常选择的方法是将button 和文字分别置于一个<span>中。因为<span>在未设置 display:block的时候是不会想div那样自动换行的,因此button和文字很自然就排成一行了, 而且两个span中的文字会自动对齐。代码如下:

<style type="text/css">

  .long-btn {
    height: 40px;
    width: 100px;
    text-align:center;
    line-height:40px;

    background: url(img/mail-tpl-view.gif) no-repeat;
    font-size:20px;
  }
</style>
<div>
    <span class="button-span">
       <a class="long-btn" href="##">大按钮</a>
    </span>
    <span class="text">
       小文字
    </span>
  </div>

 

 

      但是如果我们仅仅进行至此,打开页面看效果的时候你会发现,你的按钮显示的是不完全的,不管你把那个height和width设置的多么的大。因为此时span的大小是以它所承载的element的大小决定的,也就是那个<a>,而<a>也没什么出息,它的大小也只取齐于它里面的内容。从这里开始,就分支出来了两种解决方案。

  • 第一种,费力不讨好草根型:

      我们为了迎合那个大按钮,就把<a>的css属性display设置为block。这样<a>就已块状形式存在,它的width和height属性就生效了,按钮也出来。刷新页面在看,发现杯具了,原来排在一行的按钮和文字换了行了。。。这全都是block捣的鬼,然后就为了还原之前的一行,我们再给<a>加一个float:left属性,这下以为万事大吉了,一看,一行是一行了,但是文字无法对齐。然后就要开始了炼狱般的各种样式调整,什么margin,什么padding,什么top全都用上了,到最后你可能都无法把两串文字完全搞对齐。。。

 

  • 第二种,一劳永逸豪华型:

      说它是豪华型的解决方案,是因为这个里面用到的display:block-inline属性是firefox3时才支持的。在firefox2里面需要用私有属性,但是IE6及以上版本还是都支持的,虽然显示出来有小小不同,这个容后再说。我们之前为了让a能够显示出整个背景,把它设成了block,但是因此而带来来换行的悲惨效果,于是,另一种display属性华丽登场inline-block。你可以把这个属性理解为block和inline的结合,设置此属性的元素既能实现块状元素的一些特性,又能保证同级元素都处于一行,且对齐。

     但是block-inline在各个浏览器中的显示效果还是有些微的差异,这里转一篇文章,供自己收藏供大家参考。

       http://www.99css.com/?p=23

 

 

 

 

 

分享到:
评论

相关推荐

    有关display:inline-block在FF出现空白的解决方案

    在网页布局设计中,`display:inline-block` 是一个非常常用且强大的CSS属性,它允许元素在保持块级元素特性的同时,像内联元素一样并排显示。然而,在不同浏览器之间,尤其是在Firefox(FF)上,可能会遇到一些显示...

    display:inline-block的实际应用

    在提供的压缩包文件 "display-block应用" 中,可能包含了使用 `display:inline-block` 进行布局的示例代码或教程,通过学习和实践这些案例,可以帮助你更好地理解和掌握这一技巧。 总之,`display:inline-block` 是...

    CSS属性display:inline-block用法深入理解

    首先,`display:inline-block`的作用是将元素呈现为内联对象,这意味着它们会与其他内联元素排列在同一行中,不会强制换行。同时,`inline-block`元素的内容会按照块级元素的方式处理,允许设置宽高、内外边距等。...

    display:inline-block的使用示例

    在网页布局设计中,`display:inline-block` 是一个非常实用的CSS属性,它允许元素以行内元素的方式显示,但同时保留着块级元素的特性,如设置宽度、高度以及垂直对齐等。这个属性在处理多列布局,尤其是需要在有限的...

    inline-block 前世今生1

    display:inline-block 属性是CSS布局中的一个重要概念,它允许元素具有内联元素的特性(如排列在同一行内),同时又能像块级元素那样设置宽度、高度和垂直对齐。这个属性在前端开发中被广泛应用,尤其是用于创建响应...

    CSS之display引用运用

    1. **并排显示多个元素**:使用`display:inline-block`可以让多个元素在同一行上并排显示,这对于创建导航栏或卡片式布局非常有用。 ```css .nav-item { display: inline-block; margin-right: 10px; } ``` 2...

    CSS教程:inline-block在各浏览器的显示

    `inline-block`让元素在一行内显示,就像文本一样,但它们保持着块级元素的特性,比如可以设置宽度、高度和内边距。这在创建网格布局或者需要元素按顺序排列时非常有用。然而,当内容长度不一致时,`inline-block`...

    关于css display: inline block inline-block的区别分析

    在CSS布局中,`display`属性是一个至关重要的样式规则,用于定义元素的呈现方式。`display: inline`、`display: block` 和 `display: inline-block` 是三种常见的值,它们各自具有不同的行为和用途。 1. **display:...

    使用display:inline-block居中没有宽度的元素

    "使用display:inline-block居中没有宽度的元素"这个主题主要涉及到CSS中的两个关键概念:`text-align`属性和`display`属性的`inline-block`值,它们在实现动态或未知宽度元素的居中对齐上发挥着重要作用。...

    span掉落的演示代码

    标题“span掉落的演示代码”和描述中的问题,集中在`display:block-inline`这一属性上,它涉及到的是如何在保持元素内联特性的基础上,使它们具有块级元素的某些特性,比如占据一整行。 首先,我们需要理解CSS的`...

    css块状元素与内联元素以及inline-block

    CSS 中的块状元素(Block Elements)和内联元素(Inline Elements)是两种基本的元素类型,它们在网页布局和样式设计中扮演着非常重要的角色。块状元素和内联元素的区别在于它们的显示方式和布局特点。 一、块状...

    css display inline block 兼容性问题写法

    CSS中的display属性用来定义元素的显示类型,其中inline-block是一种非常有用的值,它允许你将元素以块级元素的形式显示,同时保持行内元素的特性。这使得元素可以设置宽高而不必使用float属性,并且能够在父容器中...

    跨浏览器的inline-block声明上承诺了很多提供的却很少

    在web设计中,"inline-block"是一种常用的CSS显示属性,它兼具内联元素和块级元素的特点。内联元素如,块级元素如,分别有其独特的布局特性。内联元素不会以新行开始,而是按照它们在文档中出现的顺序排列,而块级...

    float元素浮动后高度不一致导致错位的解决办方法

    浮动子元素定义需要的font-size, 再定义display:inline-block;vertical-align:top; 复制代码代码如下: ul{ margin:0; padding:0; list-style-type:none; font-size:0; } ul li{ width:160px; display:inline-...

    CSS中使用inline-block来进行居中的示例

    通过这种方式,你可以有效地利用`inline-block`属性在CSS中实现元素的居中对齐,同时注意到容器宽度的影响和如何处理潜在的空白间隙问题。这不仅适用于单个元素,也适用于一组需要居中的元素,使布局更加灵活和可...

    完美居中1

    在网页设计中,实现元素的居中对齐是一项常见的需求,特别是对于图片和多行文字的垂直居中。在本文中,我们将深入探讨如何利用CSS来实现这一目标,主要关注JavaScript标签下的CSS技巧。 首先,让我们分析给出的HTML...

    CSS中如何把Span标签设置为固定宽度.pdf

    如果Span标签和其他文本在同一行,可以结合使用display:block和float:left,使它既能保持在行内又能设定宽度。例如: ```css span { width: 60px; text-align: center; display: block; float: left; } ```...

    CSS解决inline-block的错位问题

    在网页布局中,`inline-block` 是一种常用的元素显示方式,它结合了 `inline` 和 `block` 的特性,使得元素既可以像 `inline` 元素那样不换行显示,又能够设置宽度和高度等属性。然而,在实际开发过程中,开发者可能...

Global site tag (gtag.js) - Google Analytics