• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Z użyciem box-sizing zmiana marginesu powoduje przesunięcie elementu a nie dostosowanie do szerokości rodzica

Object Storage Arubacloud
0 głosów
389 wizyt
pytanie zadane 3 listopada 2017 w HTML i CSS przez kevin Mądrala (5,010 p.)
edycja 3 listopada 2017 przez kevin

Witam!

Nie rozumiem czemu ustawiając tag box-sizing: border-box; i zmieniając margines dla tego elementu nie zmienia się jego szerokość lecz zostaje przesunięty w prawo. W linku poniżej umieszczam opis (label) inputu oraz pole do wyświetlenia ewentualnego błędu. Pola wyświetlane są poprzez tag float. Na rodzica nakładane są tagi clear:both i display: block aby usunąć niepotrzebne działanie float. W tym divie znajduje się również input i to chyba dlatego nie mogę poprawnie ustawić marginesu w pionie dla inputu, ponieważ zmienia się jedynie w dół od elementu.

 https://jsfiddle.net/qr49u11d/

 

Edycja pytania:

  Pierwszy problem rozwiącając dodając style do inputa: <input style="display: block; width: 97%; margin: 0 auto;" type="text" > ponieważ box-sizing nie uwzględnia margin.

 

1 odpowiedź

+1 głos
odpowiedź 4 listopada 2017 przez pablop76 VIP (123,180 p.)

Witam. box-sizing:border-box uwzględnia tylko obramowanie i dopełnienie ( border i padding).

Usuń margin z inputa i daj padding: 3px; do big-container. Chociaż moim zdaniem html jest przekombinowany. Dał bym fieldset zamiast input-container i ten elament byłby pojemnikiem.

<form>
<fieldset>
      <label>Nazwa:</label>
   <a href="" class="error">błąd!</a>
      <input type="text">
</fieldset>
</form>
fieldset {
width:300px;
border:1px solid #000;
padding: 3px;
}

.error
{
  float: right;
  font-size; 12px;
  color: red;
}

input{
  display: block;
box-sizing:border-box;
width:100%;
clear: both;
}

 

komentarz 5 listopada 2017 przez kevin Mądrala (5,010 p.)
Tylko w jaki sposób nie używając margin-top odsunę inputa od label ?
komentarz 5 listopada 2017 przez pablop76 VIP (123,180 p.)
W moim przykładzie możesz użyć margin-top dla inputa.
komentarz 5 listopada 2017 przez kevin Mądrala (5,010 p.)

A dlaczego nie działa to w moim przykładzie ?

Zawsze myślałem że fieldset używa się do oddzielenia dwóch różnych form a nie poszczególnych input'ów w formie. Do tej pory używałem tego tak:

<fieldset>
    <legend>...</legend>

    <form>
         <div class="big-containe">
              <label>Input 1:</label>
              <a class="error"></a> 
              <input type="text">
         </div>

         <div class="big-container">
              <label>Input 2:</label>
              <a class="error"></a> 
              <input type="text">
         </div>
   </form>

 

komentarz 5 listopada 2017 przez pablop76 VIP (123,180 p.)
edycja 5 listopada 2017 przez pablop76

Służy do grupowania kontrolek oraz etykiet (elementów formularza powiązanych tematycznie)

fieldset

komentarz 5 listopada 2017 przez pablop76 VIP (123,180 p.)
Nie mówię ,że masz użyć fieldset . Chodzi mi o css.

Podobne pytania

0 głosów
1 odpowiedź 149 wizyt
pytanie zadane 17 września 2018 w HTML i CSS przez ajzyn Użytkownik (510 p.)
0 głosów
5 odpowiedzi 735 wizyt
0 głosów
1 odpowiedź 145 wizyt
pytanie zadane 2 września 2018 w HTML i CSS przez bulit000 Początkujący (460 p.)

92,579 zapytań

141,427 odpowiedzi

319,654 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...