Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Problem z css
#1
Witam,
Mam problem z ujednoliceniem wyświetlania buttonów i linków. Konkretnie chodzi o taki fragment kodu:
Kod:
input[type=submit], a.button_link {
    float:left;
    display:block;
    padding:4px 10px;
    color:#0073ea;
    font-weight:bold;
    background-color:#fafafa;
    text-decoration:none;
    border:1px solid #dddddd;
    margin:3px 3px 3px 0;
    line-height:16px;
    cursor:pointer;
    font-size:13px;
}
input[type=submit]:hover, a.button_link:hover {
    color:#ffffff;
    background-color:#0073ea;
    border:1px solid #0073ea;
}

Czy jest ktoś w stanie mi powiedzieć dlaczego różnią się wysokością?
Jak je ujednolicić?
Odpowiedz
#2
Witaj,

Resetowałeś ręcznie ustawienia CSS, bądź korzystasz z jakiegoś skryptu?
Odpowiedz
#3
Nic nie resetowałem. Jedyne rzeczy jakie mam globalnie ustawione to padding, margin - na 0 i rozmiar, rodzaj fontu.
Może komuś podpowie fakt, że link inaczej interpretuje wysokość niż button.

Link robi to naturalnie, czyli:
padding-top+height+padding-bottom

W przypadku buttona wysokością jest po prostu:
height

Co więcej, tekst buttona jest zawsze na środku , w przypadku linku - położenie tekstu jest zależne od paddingu.
Odpowiedz
#4
Polecam używanie skryptów resetujących ustawienia CSS. Ja używam np. tego:

Kod:
/* --------RESETY-------- */
html, body, ul, li, img { margin: 0; padding: 0;}
h1, h2, h3, ul, li, p { margin: 0; padding: 0;}
body h1, h2, h3 {margin: 0;}
a img {border: none; }
a {outline: none; }
li { list-style: none;}
a { text-decoration: none; color: #cab97d;}
a:visited {}
a:hover {}
a:active {}
/* --------RESETY KONIEC-------- */

Poprostu weklej to na samym początku kodu CSS.

Podaj link do strony, na której występuje problem.
Odpowiedz
#5
Na pewno dam plusika osobie która mi pomoże Smile
Natomiast Twój reset nie zmienia żadnych ustawień których bym nie wziął pod uwagę w załączonym kodzie.

Linka nie mogę dać, bo to jest aplikacja. Wklejam kod najprostszej strony na której widać problem:
Kod:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <style type="text/css">
    input[type=submit], a.button_link {
    float:left;
    display:block;
    padding:4px 10px;
    color:#0073ea;
    font-weight:bold;
    background-color:#fafafa;
    text-decoration:none;
    border:1px solid #dddddd;
    margin:3px 3px 3px 0;
    line-height:16px;
    cursor:pointer;
    font-size:13px;
    font-family:Arial, Helvetica, sans-serif;
    }
    input[type=submit]:hover, a.button_link:hover {
    color:#ffffff;
    background-color:#0073ea;
    border:1px solid #0073ea;
    }
    </style>
</head>
<body>
<input type="submit" value="Zapisz"/>
<a href="#" class="button_link">Usuń</a>

</body>
</html>
Będę wdzięczny za każdą sugestię.
Problem dla mnie rozwiązuje line-height:18px ... wtedy buttony są identyczne - nie rozwiązuje to ogólnego problemu, w przypadku, gdy ktoś będzie wolał mieć niższy button, bo dla innych wartości line-height już nie jest tak słodko.
O co chodzi?
Odpowiedz
#6
Kod:
Link robi to naturalnie, czyli:
padding-top+height+padding-bottom

Skoro tak, to nie próbowałeś napisac osobnych deklaracji dla linka i osobnych dla buttona? Jak będę miał chwile czasu, to pobawię się z tym troche Wink

Pozdrawiam.
Odpowiedz
#7
Resetowanie nic nie da.

Różnią się - bo tak.

Albo ustawisz dodatkowy styl dla linków, albo zapomnij o takim samym wyglądzie.
Co mogę poradzić? A jako display:block; albo odpowiednie paddingi - dla A będą większe niż dla inputów.
A i tak nigdy nie uzyskasz idealnie takich samych wyglądów z tego powodu, że w inputach nie ruszysz położenia tekstu.
Tak więc zrób dodatkowy styl dla linków i dodaj tam odpowiedni padding + jakieś małe zmiany by zasymulować input (najlepiej wychodzi z display:block, ale to mało praktyczne). Choć sam tak robiłem, to wiadomo, że to nie jest dobra praktyka. W końcu link =/= input Wink
Odpowiedz
#8
Pewnie już na to wpadłeś, a jeśli nie to tutaj masz rozwiązanie:

Kod:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <style type="text/css">
    input[type=submit], a.button_link {
    float:left;
    display:block;
    padding:4px 10px;
    color:#0073ea;
    font-weight:bold;
    background-color:#fafafa;
    text-decoration:none;
    border:1px solid #dddddd;
    margin:3px 3px 3px 0;
    line-height:16px;
    cursor:pointer;
    font-size:13px;
    font-family:Arial, Helvetica, sans-serif;
    }
    a.button_link {    
    padding:5px 10px;
    }

    input[type=submit]:hover, a.button_link:hover {
    color:#ffffff;
    background-color:#0073ea;
    border:1px solid #0073ea;
    }
    </style>
</head>
<body>
<input type="submit" value="Zapisz"/>
<a href="#" class="button_link">Usuń</a>

</body>
</html>

Do twojego kodu wystarczyło dołączyc taką linijke a.button_link {padding:5px 10px;}.

Pozdrawiam.
Odpowiedz


Skocz do:


Użytkownicy przeglądający ten wątek:
Sponsorzy i przyjaciele
SeoHost.pl