Jak wyśrodkować w poziomie element span w elemencie div


123

Próbuję wyśrodkować dwa łącza „wyświetl witrynę” i „wyświetl projekt” wewnątrz otaczającego elementu div. Czy ktoś może wskazać, co muszę zrobić, aby to zadziałało?

JS Fiddle: http://jsfiddle.net/F6R9C/

HTML

<div>
  <span>
    <a href="#" target="_blank">Visit website</a>
    <a href="#">View project</a>
  </span>
</div>

CSS

div { background:red;overflow:hidden }

span a {
    background:#222;
    color:#fff;
    display:block;
    float:left;
    margin:10px 10px 0 0;
    padding:5px 10px
}


Oto dwie proste metody wyśrodkowania elementów w elemencie div, w pionie, poziomie lub w obu (czysty CSS): stackoverflow.com/a/31977476/3597276
Michael Benjamin

Odpowiedzi:


134

Jedną z opcji jest <a>wyświetlenie, inline-blocka następnie zastosowanie text-align: center;na zawierającym go bloku (usunięcie również pływaka):

div { 
    background: red;
    overflow: hidden; 
    text-align: center;
}

span a {
    background: #222;
    color: #fff;
    display: inline-block;
    /* float:left;  remove */
    margin: 10px 10px 0 0;
    padding: 5px 10px
}

http://jsfiddle.net/Adrift/cePe3/


1
To załatwiło sprawę w przypadku średnio złożonego tematu, który musiałem trochę zhakować. Link do JSFiddle dalej był niesamowity, ponieważ pozwolił mi przetestować. Edytowałem ten wpis, aby uwzględnić zmianę „overflow: hidden” na „overflow: hidden;”
zwrócił ..

1
Wygląda na bardzo czyste rozwiązanie.
Jim Aho,

Zobacz odpowiedź Ahmeda Bahtity poniżej, style = "text-align: center", jest o wiele bardziej zwięzła.
Wallace Howery


10
<div style="text-align:center">
    <span>Short text</span><br />
    <span>This is long text</span>
</div>

8

Zastosowanie inline-blockdo elementu, który ma być wyśrodkowany i zastosowanie text-align:centerdo bloku rodzica załatwiło sprawę.

Działa nawet na <span>tagach.


1

Rozpiętości mogą być nieco trudne w obsłudze. jeśli ustawisz szerokość zakresu uczenia, którego możesz użyć

margin: 0 auto;

aby je wyśrodkować, ale potem kończą na różnych liniach. Sugerowałbym wypróbowanie innego podejścia do swojej struktury.

Oto jsfiddle z czubkiem głowy, z którym się nagrałem : jsFiddle

EDYTOWAĆ:

Odpowiedź Adrift to najłatwiejsze rozwiązanie :)


0

Zakładam, że chcesz je wyśrodkować na jednej linii, a nie na dwóch osobnych liniach w zależności od Twoich skrzypiec. W takim przypadku wypróbuj następujący CSS:

 div { background:red;
      overflow:hidden;
}
span { display:block;
       margin:0 auto;
       width:200px;
}
span a { padding:5px 10px;
         color:#fff;
         background:#222;
}

Usunąłem pływak, ponieważ chcesz go wyśrodkować, a następnie wyśrodkowałem zakres otaczający linki, dodając do nich margin: 0 auto. Na koniec dodałem statyczną szerokość do rozpiętości. Spowoduje to wyśrodkowanie łączy w jednej linii w czerwonym div.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.