2011-01-09 6 views
5

Sto ottenendo un piccolo angolo arrotondato effetto alone che mi piacerebbe eliminare. In this example, cerca l'effetto nel cerchio rosso. Ecco uno zoom in dell'effetto:Il modo migliore per rimuovere l'alone di angoli arrotondati del CSS?

alt text

Mi sembra di ricordare un po 'indietro la lettura di un articolo proprio su questo problema. Qualcuno ha un link a quell'articolo? Altrimenti, qualche buon modo per liberarsi dell'alone?

È causato perché il dl ha tutti e quattro gli angoli arrotondati. Ciò consente di arrotondare la parte inferiore di dl. Lo dt si trova sopra lo dl e ha gli angoli top left e top right arrotondati. Ma c'è un leggero overflow della curva dl dietro la curva dt, causando l'alone.

My solution consente di aumentare il raggio di confine dello dl in modo che sia nascosto dietro l'angolo dt. Ma sembra un trucco e aggiunge una buona quantità di CSS. Mi chiedo se c'è una soluzione migliore. Qui è senza l'alone: ​​

alt text

+0

ho dovuto usare la lente di ingrandimento solo per vedere cosa stavi parlando – qwertymk

+0

@qwertymk - dispiace. Sono un po 'perfezionista! – Tauren

+0

Ho appena aggiunto alcune immagini per illustrare meglio. – Tauren

risposta

3

Se non ti dispiace una discrepanza 2 pixel si potrebbe aggiungere ...

div.content dt.top { 
    position: relative; 
    top: -2px; 
} 

Ma penso che la soluzione è buona, può essere migliorata usando la versione abbreviata di arrotondamento:

http://jsfiddle.net/DAjWS/

border-radius: [topleft] [topright] [bottomright] [bottomleft] 

L'articolo che stai citando probabilmente ha a che fare con la combinazione del bordo con il raggio del bordo (produce un alone simile al tuo), ma nel tuo caso è previsto. La stessa cosa accadrebbe in un'app di modifica vettoriale se si sovrapponevano due caselle con gli angoli arrotondati. devi solo trovare un modo elegante per coprire l'anti-aliasing della scatola in basso.

+0

Grazie per il vostro aiuto. Allora vado con quello che sto facendo, ma certamente userò il tuo suggerimento per la stenografia border-radius. Ciò ridurrà significativamente il CSS. – Tauren

+0

Trovato l'articolo! Il collegamento è nella risposta che ho postato. – Tauren

1

Mi sono appena imbattuto nello the article that I mentioned in my question. Era collegato a da html5boilerplate.com. In sostanza, il seguente CSS webkit sarà sbarazzarsi del spurgo (o alone, come ho chiamato):

-webkit-background-clip: padding-box; 
+0

Buona scoperta! tuttavia, ciò non risolve ancora il problema originale, poiché corregge un div con un bordo + raggio-bordo, non due div arrotondati uno sopra l'altro. – Duopixel

+0

Oh, lo fa? Buono a sapersi. In realtà non l'avevo ancora testato, poiché la soluzione di cui abbiamo discusso funzionava correttamente. – Tauren