2016-09-27 9 views
0

Почему элементы с автоматической шириной не центрируются, когда я пытаюсь присвоить ему поле (левое и правое) ?. Есть ли какой-либо трюк, кроме полей, чтобы центрировать элементы с автоматической шириной?Ширина авто не центрируется

Вот код:

<div style="width:auto; margin:0 auto 50px;"> 
<a href="#">Dummy link</a> 
</div> 

ответ

1

Добавить display: inline-block, и удалить width:auto с вашего текущего <div>. Затем создайте внешний <div>, если у вас его еще нет, и добавьте text-align: center к нему.

<div style="text-align:center;"> 
    <div style="display:inline-block; margin:0 auto 50px;"> 
    <a href="#">Dummy link</a> 
    </div> 
</div> 

JSFiddle: https://jsfiddle.net/uLp7qj3e/

+0

Прекрасно работает – AndrewMk

0

Вы можете дать text-align:center для родительского DIV, если таковые имеются.

Чтобы использовать margin-auto, нам нужно указать ширину div. auto займет 100% ширину для тегов div и p.

Если вы можете найти и дать определенную ширину для DIV, так что, в противном случае на основе вашего браузера Suppport использовать свойство width:max-content;, читайте об этом here

Вы можете использовать браузер взломать для этого, как:

width: intrinsic;   /* Safari/WebKit uses a non-standard name */ 
width: -moz-max-content; /* Firefox/Gecko */ 
width: -webkit-max-content; /* Chrome */ 

Пример фрагмента кода:

<div style="background:red;margin:auto;width:intrinsic;width:-moz-max-content;width:-webkit-max-content;"> 
 
    <a href="#">Dummy link</a> 
 
</div>

+0

Это работает, но то, что я действительно пытаюсь выполнить, чтобы создать блок, содержащий «пустышки ссылки» слово и эта коробка должна быть точной шириной слова. Когда я даю ему ширину авто и цвет фона, он растягивается полностью горизонтально. – AndrewMk

+0

@AndrewMk: Дайте свойство 'display: inline-block', вашему div, а затем оно будет шириной не больше, чем у его содержимого. Это то, что вы хотите? –

+0

У этого теперь div, который содержит якорь, не центрирован, хотя у меня есть margin: 0 auto 50px; – AndrewMk