Trucchi di frontiera con CSS Boxes Compresso

8 marzo, 2011 at 03:23 da Thierry Koblentz | In CSS 101 , le Progettazione e Sviluppo | 8 commenti

Questi trucchi li aiuterà a realizzare progetti senza ricorrere all'uso di immagini, CSS3 gradiente o markup estranei. Con collasso scatole con zero line-height e height valori, siamo in grado di visualizzare il contenuto al di fuori della casella di contenuti, oltre i confini.

Bi-colore di sfondo

In questo esempio non include IE 6/7 soluzioni alternative (controllare il codice sorgente di questa pagina demo per le correzioni di IE).

Bi-colore di sfondo screenshot
 .parent { display:inline-block; text-align: center; border: 1px solid #cecece; } .child { display:inline-block; line-height: 0; height: 0; border-top: 1em solid #ffc; border-bottom: 1em solid #fdcf46; padding:0 .6em; vertical-align:bottom; } <ul id="menuBar-A"> <li><a href="#">About Us</a></li> <li class="selected"><a href="#">Contact Us</a></li> <li><a href="#">Services</a></li> <li><a href="#">Products</a></li> </ul> 

Dots e tubi tra le voci di elenco

Questo esempio mostra correttamente tutti i browser IE, dopo alcune correzioni semplici.

Punti e screenshot tubi
 ul.one, ul.two { margin-left:0; display:inline-block; *display:inline; zoom:1; height:12px; line-height:12px; padding:0; } li { float:left; display:inline; height:2px; line-height:2px; position:relative; top:.3em; } ul.two {border-left:1px solid #333;} ul.one li {border-left:2px solid #333;} ul.two li {border-right:2px solid #333;} ul.one li.first-child, ul.two li.last-child { border:0; } a { color:#000; padding:.4em .9em; *position:relative; } <div id="menuBar-B"> <ul class="us"> <li><a href="#">About Us</a></li> <li class="selected"><a href="#">Contact Us</a></li> </ul> <ul class="ourOffer"> <li class="services"><a href="#">Services</a></li> <li><a href="#">Products</a></li> </ul> </div> 

Triangoli sinistra e verso destra

In questo esempio non include IE 6/7 soluzioni alternative (controllare il codice sorgente di questa pagina demo per le correzioni di IE).

Sinistra e rivolta verso destra triangoli screenshot
 #box { line-height: 0; height: 0; border: .4em solid transparent; border-left-color: #333; border-right-color: #333; padding: 0 .3em; display: inline-block; } <ul id="menuBar-C"> <li><a href="#">About Us</a></li> <li class="selected"><a href="#">Contact Us</a></li> <li><a href="#">Services</a></li> <li><a href="#">Products</a></li> </ul> 

IE 6 e trasparenza delle frontiere

IE 6 non supporta la parola chiave " transparent "per il colore del bordo. Quando si utilizza questo valore, IE 6 disegna un bordo nero.

La correzione per questo è di utilizzare il filtro crominanza che mostra un colore specifico del contenuto dell'oggetto come trasparente. Ad esempio, per creare una freccia rivolta verso destra è possibile utilizzare questa regola:

 #Box { height: 0; width: 0; border: 10px solid transparent; font-size: 0; _border-color: pink; _filter: chroma(color="pink"); border-left-color: #333; } 

Il font-size dichiarazione è un'altra soluzione per IE 6. E 'per assicurarsi che questo browser non aumentare l'altezza della finestra.

! Arrestare le presse ho appena imparato un nuovo trucco (grazie Chungho Fang):

La magia [per creare la trasparenza delle frontiere in IE] è quello di impostare 'border-style' a uno tratteggiata o punteggiata


Questo è tutto! Questo è solo un altro modo per utilizzare i bordi per ottenere l'immagine-less design.

Ulteriori letture

Circa l'autore: Thierry Koblentz è un front-end ingegnere di Yahoo!
Egli possiede TJK Progettazione , ez-css.org e css-101.org . Puoi seguire Thierry su Twitter all'indirizzo @ thierrykoblentz .

Condividi ed estendere: Segnalibro con Del.icio.us | Digg it! | reddit!

8 commenti

  1. Great! Ma per quanto riguarda Opera?

    Commento di Cuprum - 9 marzo 2011 #

  2. @ Cuprum

    Opera sembra sbagliare il testo. Mettere al di sopra la casella di contenuto se il line-height è impostato su 0 o sotto di esso se il line-height non viene azzerato.

    Qualcuno dovrebbe aprire un bug ;-)

    Come nota a margine, che spesso può far funzionare le cose in tutti i browser (compreso IE6), ma mi ha colpito un muro con Opera.
    Questo browser è davvero un dolore. Ha problemi, ma non possiamo risolvere il problema come facciamo con IE6 / 7 (perché non può bersagliare le versioni). In cima a quello, non ha parti molto di mercato e allora perché dovremmo perdere tempo?

    Grazie per il tuo feedback

    Commento di Thierry Koblentz - 9 Marzo 2011 #

  3. Sembra che Opera non piace lo zero line-height. Ho sostituito un line-height di 0.1, che sembra risolvere Opera. AFAICT questo riguarda solo IE 8, che è più facile da risolvere rispetto Opera, mi pare.
    Cordialmente, David

    Commento di David Hucklesby - 14 marzo 2011 #

  4. Ciao David,

    Questa è una grande scoperta, grazie mille per la condivisione.

    Commento di Thierry Koblentz - 15 marzo 2011 #

  5. Buon posto, ma smettere di fissaggio per IE6.

    Commento di Mike - 16 marzo 2011 #

  6. Ciao David,

    Che cosa significa questa costruzione (dalla classe ul.two):

    display: inline-block;
    * Display: inline;

    Sono curioso di sapere la parola chiave stelle ... Grazie!

    Commento di Paul - 17 marzo 2011 #

  7. Hi Paul,

    In queste regole, ci sono due diversi filtri CSS (CSS hack), è chiamato l'hack stelle, l'altra si chiama il carattere di sottolineatura trucco proprietà.

    Funzionano così:

    *property:value; /* IE5/6/7 see this */
    _property:value; /* IE5/6 see this */

    Se li abbiamo messi in questo ordine che è quello di assicurarsi la seconda dichiarazione sovrascrive il valore dato a IE7.

    Si potrebbe provare questo:

    color:blue; /* blue in all browsers */
    *color:yellow; /* switching to yellow for IE less than 8 */
    _color:green; /* switching to green for IE less than 7 */

    Si noti che questi hack sono affidabili, ma il validatore CSS li contrassegna come errori (perché questo non è proprio la sintassi CSS).

    Commento di Thierry Koblentz - 17 marzo 2011 #

  8. Ho trovato un bug di rendering con triangoli CSS che non ho trovato citato altrove. Firefox 4 su XP diventa strano.

    Ecco una demo: http://zevbrokeit.posterous.com/nubs-problem

    Avete qualche suggerimento?

    Commento di Zev Goldberg - 24 Marzo, 2011 #

Siamo spiacenti, il commento forma è chiusa in questo momento.

Ospitato da Yahoo!

Copyright © 2006-2012 Yahoo! Inc. Tutti i diritti riservati. Privacy Policy - Termini di servizio

Powered by WordPress su Yahoo! Web Hosting .