2014-10-01 2 views
3

Я пытаюсь центрировать выравнивание элементов элемента один под другим, внутри родительского элемента, где элементы занимают минимальную ширину и высоту, как при использовании display:inline-blockЧто такое эквивалент -moz-fit-content и -moz-center

.parent { 
    text-align: -moz-center; 
    text-align: -webkit-center; 
    text-align: -ms-center; 
} 

.parent a { 
    display:block; 
    width:-moz-fit-content; 
    width:-webkit-fit-content; 
    width:-ms-fit-content; 
    background-color:red; 

} 


<div class="parent"> 
    <a href ="#">Link1</a> 
    <a href="#">Link2</a> 
</div> 

Я вижу, что он работает для Chrome и Firefox, но не работает для IE. Кто-нибудь знает, что эквивалентно -moz-center и -moz-fit-content в IE?

+0

как насчет 'text-align: center;' и 'width: fit-content;'? – balintpekker

+0

text-align: центр не помогает в центрировании ссылок в этом случае. Кроме того, width: fit-content показывает ошибку в моей IDE (Intellij Idea) – Anonymous

+0

@balintpekker 'text-align: center;' не является заменой '-moz-fit-content' –

ответ

5

Почему бы не просто использовать фактический inline-block для контейнера? Кроме того, display:table и float:left будут иметь такой же эффект.

.parent { 
 
    display: inline-block; 
 
    background: #eee; 
 
} 
 
.parent a { 
 
    display: block; 
 
    text-align: center; 
 
}
<div class="parent"> 
 
    <a href ="#">Link1 is long</a> 
 
    <a href="#">Link2</a> 
 
</div>

+0

Это делает работу когда я тестировал в jsbin, но по какой-то причине дисплей: inline-block делает ссылки выровнены слева в моем коде. – Anonymous

+0

Проверьте стиль ссылок в коде в инспекторе DOM. Вероятно, они получают (путем каскадирования) некоторые стили с более высокой специфичностью, которые переопределяют 'text-align: center'. –

0

это не имеет отношения к вашей теме, но все же у меня есть вопрос ??

Почему вы хотите использовать -moz-center и -moz-fit-content ???

вы можете сделать такой же результат другим подходом

Смотрите эту скрипку http://jsfiddle.net/mk2zxujx/6/

, например

.parent{ 
margin:auto 0; 
text-align:center; 
} 


.parent a { 
display:block; 
background-color:red; 
color:white;  
} 


a{ 
    width:auto;// to make it responsive - you can give your own value if you want 
    min-width:50px; //since you asked for a minimum width 
} 

я надеюсь, что он будет работать во всех браузерах

+0

Я просто пытался найти что-то, что работает. Скрипт, который вы использовали, не имеет минимальной ширины для ссылок. – Anonymous

+0

Я обновил скрипку, я использовал этот подход во многих проектах, и он чист. –

0

Я бы просто добавим к этому, что если вы пытаетесь установить ширину внутренней области, ее лучше использовать:

width: intrinsic; 

Это будет использовать ширину региона, который у вас есть, а не всю область.