Flexbox不适用于按钮

时间:2013-06-06 11:39:52

标签: css html5 css3 flexbox

我想在我的html中使用flex box模型

我有一个div容器,里面有三个按钮。

<div id="viewport" class="linearlayout horizontal" data-am-control="vertical-layout" >  
    <!-- El div "container_buttons" estaría centrado en el medio del padre -->      
    <button id="twitter" class="btn item" data-am-control="button" >Twitter dinámico</button>
    <button id="spinnerSimple" class="btn item" data-am-control="button" >Spinner simple</button>
    <button id="spinnerCustom" class="btn item" data-am-control="button" >Spinner personalizado</button>
</div><!-- END VIEWPORT-->

我使用display:box和orientation:vertical ...但是我看到我的按钮内嵌了垂直...

我的问题在于所有浏览器。

Css是这样的:

#viewport{
width: 480px;
height: 800px;
background-image: linear-gradient(#a8a8a8, #ebebeb);
margin: 0 auto;
}

.linearlayout{
display: -webkit-box; 
display: -moz-box; 
display: box;

}

.horizontal{
-webkit-box-orient: horizontal; 
-moz-box-orient: horizontal; 
box-orient: horizontal;
}

.vertical{
-webkit-box-orient: vertical; 
-moz-box-orient: vertical; 
box-orient: vertical;
}

http://jsfiddle.net/adUD9/

1 个答案:

答案 0 :(得分:5)

你有一些事情不利于你。

  1. 您只使用2009年草案中的旧版属性,而不是每个浏览器都有。 IE10是第一款支持Flexbox的IE浏览器,它实现了2012年3月的草案。每个其他浏览器都有2009草案或标准草案的实现,有些同时具有这两种浏览器。

  2. Webkit的2009 Flexbox实现不适用于按钮。如果添加其他同级元素,它们将按照您的预期垂直放置。 Chrome有2009版和标准版,但Safari,Android,iOS只有2009版实现。

  3. 您可以使用正确的属性集合来修复#1,但对于仅支持2009属性的Webkit浏览器,您无法对#2做任何事情。

    http://jsfiddle.net/adUD9/3/

    .linearlayout {
      display: -webkit-box;
      display: -moz-box;
      display: -ms-flexbox;
      display: -webkit-flex;
      display: flex;
    }
    
    .horizontal {
      -webkit-box-orient: horizontal;
      -moz-box-orient: horizontal;
      -webkit-flex-direction: row;
      -ms-flex-direction: row;
      flex-direction: row;
    }
    
    .vertical {
      -webkit-box-orient: vertical;
      -moz-box-orient: vertical;
      -webkit-flex-direction: column;
      -ms-flex-direction: column;
      flex-direction: column;
    }
    

    如果您只想垂直显示按钮,我建议您不要使用Flexbox:

    http://jsfiddle.net/adUD9/1/

    button {
        display: block;
        width: 100%;
    }