我想要創建一個垂直列表,其中每行縮小其寬度以完全包含其內部內容(與默認的div
行爲將其寬度擴展爲填充容器)。垂直元素列表,其中每行縮小其寬度以匹配內部內容
我想這樣做只有一個每行的HTML元素(沒有額外的包裝divs)。
以下代碼完全符合我的要求,但它在Safari中不起作用(bug?)。
.container {
margin: 10px;
border: 2px solid #999;
padding: 5px;
display: flex;
flex-direction: column;
width: 300px
}
.row-item {
padding: 5px;
margin: 5px;
border: 1px solid green;
/* this will shrink the width to the inner content
in Chrome and Firefox, but not in Safari */
margin-right: auto;
}
<div class='container'>
<div class='row-item'>Item #1</div>
<div class='row-item'>Another Item...</div>
<div class='row-item'>Item No. 3</div>
</div>
下面是一個與上面的代碼codepen:http://codepen.io/anon/pen/woKYqx
我知道它是微不足道的由內部元件上增加一個包裝的div,然後使用display: inline-block
來解決這個問題(或其他幾個類似的解決方案)。
但是,它似乎應該有可能解決這個問題,而無需添加額外的HTML元素。這是一個相當簡單的佈局。
是否有跨瀏覽器的方式來爲每行做單個HTML元素?
輝煌!謝謝。 –