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).
.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.
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).
#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
Condividi ed estendere: Segnalibro con Del.icio.us | Digg it! | reddit!
8 commenti
Siamo spiacenti, il commento forma è chiusa in questo momento.

Copyright © 2006-2012 Yahoo! Inc. Tutti i diritti riservati. Privacy Policy - Termini di servizio
Powered by WordPress su Yahoo! Web Hosting .

Great! Ma per quanto riguarda Opera?
Commento di Cuprum - 9 marzo 2011 #
@ 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 #
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 #
Ciao David,
Questa è una grande scoperta, grazie mille per la condivisione.
Commento di Thierry Koblentz - 15 marzo 2011 #
Buon posto, ma smettere di fissaggio per IE6.
Commento di Mike - 16 marzo 2011 #
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 #
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 #
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 #