Domanda

Ho il seguente HTML

<!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 runat="server">
    <style>
    .box {
        border: solid black 1px;
        padding: 0px;
        margin: 0px;
    }
    </style>
</head>
<body>
    <form id="form1" runat="server">
        <input class="box" style="width:300px;" /><br /><!--CRLF for clarity only-->
        <input class="box" style="width:150px;" /><!--CRLF for clarity only-->
        <input class="box" style="width:150px;" /><!--CRLF for clarity only-->
    </form>
</body>
</html>

Quando viene visualizzato, la seconda riga di caselle di testo sembra essere cumulativamente più lunga di 1 sulla prima riga. Ciò nonostante l'impostazione esplicita delle larghezze tramite l'attributo style

Perché succede e posso evitarlo?

Nota: questo sembra funzionare allo stesso modo in FF3 e IE7

È stato utile?

Soluzione

jhunter è corretto e aggiungerei che hai bisogno di Firebug per FireFox (è gratuito). Avresti potuto capirlo rapidamente con quello installato. Ispeziona l'elemento che ti interessa e guarda il "layout" scheda.

Altri suggerimenti

C'è un bordo in una casella di testo che non è incluso nella larghezza.

In effetti, la larghezza delle tue caselle è +2 come bordo sia a sinistra che a destra (che sono 1px) significa che ci sono 2 pixel extra per scatola. Quindi in totale sei +6.

Suggerirei di leggere CSS Mastery, spiega molte differenze con i diversi modelli di browser box e come influenzano il layout e la larghezza nei diversi browser.

Padronanza CSS

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top