L'utilizzo di CSS con margini di bordo per div rettangolari produce angoli ellittici anziché angoli arrotondati. Come posso ottenere angoli arrotondati perfetti per le immersioni rettangolari?Evita la forma ellittica nel raggio del bordo CSS
risposta
Formalmente, la sintassi per la proprietà border-radius accetta 2 valori per ogni angolo: un raggio verticale e un raggio orizzontale (separati da una barra). La seguente riga creerebbe un raggio-bordo ellittico simile alla terza immagine sopra.
border-radius: 5px/10px;
In genere viene specificato solo un valore. In questo caso, quel valore viene usato sia come raggio verticale che orizzontale. La seguente riga creerebbe un raggio di bordo circolare simile alla seconda immagine sopra.
border-radius: 10px;
Uso Percentuali
Il Mozilla Developer's Network definisce i possibili tipi di valori per questa proprietà come segue:
< lunghezza>
Indica le dimensioni del cerchio raggio o semi-maggiore e s assi emi-secondari dei puntini di sospensione. Può essere espresso in qualsiasi unità consentita dai tipi di dati CSS. I valori negativi non sono validi.< percentuale>
Indica la dimensione del raggio del cerchio, o le semi-maggiori e minori semi-assi del ellissi, utilizzando valori percentuali. Le percentuali per l'asse orizzontale si riferiscono alla larghezza della scatola, le percentuali per l'asse verticale si riferiscono all'altezza della scatola. I valori negativi non sono validi.
Utilizzando un unico valore per creare un raggio circolare è bene quando stiamo usando assoluti length
unità come pixel o SME, ma diventa più complicato quando stiamo usando percentuali. Poiché l'utilizzo a valore singolo di questa proprietà è sinonimo di utilizzare lo stesso valore due volte, le due righe seguenti sono equivalenti; tuttavia, questi non necessariamente creano un raggio di bordo circolare.
border-radius: 50%;
border-radius: 50%/50%;
Queste linee dire "creare un'ellisse o un cerchio il cui verticale raggio è pari al 50% dell'altezza dell'elemento e il cui raggio orizzontale pari al 50% della larghezza dell'elemento, e utilizzarlo come border- raggio.". Se l'elemento è largo 200 pixel e alto 100 pixel, questo risulta in un'ellisse piuttosto che in un cerchio.
Soluzione
Se si desidera un border-radius circolare, la cosa più semplice da fare è usare unità di misura assolute (come pixel o SME o nulla oltre a percentuali), ma a volte che doesn' Adatta al tuo caso d'uso e vuoi usare le percentuali. Se conosci l'aspect ratio dell'elemento contenitore, puoi ancora! Nell'esempio seguente, poiché il mio elemento è due volte più largo dell'altezza, ho ridimensionato il raggio orizzontale a metà.
#rect {
width: 200px;
height: 100px;
background: #000;
border-radius: 25%/50%;
}
<div id="rect"></div>
border-radius: 9999px
produce angoli "1/4 di cerchio perfetti", ecco perché è possibile creare cerchi css con questa proprietà. A volte non sembrano essere degli angoli perfettamente rotondi, ma è un'illusione ottica. Se questo ti infastidisce, puoi provare a imitare l'effetto con qualcosa come border-radius: 9px/8px
border-radius: 50%
, d'altra parte, produrre archi non circolari se il tuo div non è quadrato. Di nuovo, puoi ignorare il comportamento che non ti piace specificando i raggi separati per l'asse x e y come border-radius: 10%/20%
.
Se si utilizza una percentuale, è possibile che si verifichi un aspetto allungato/ellittico. Potresti provare a designare le unità in px per avere un aspetto arrotondato personalizzato.
- 1. Inserisci forma raggio-bordo in CSS?
- 2. CSS Il raggio del bordo non taglia immagine su Webkit
- 3. Perché il raggio del bordo non arrotonderà l'effettivo stile del bordo?
- 4. UItextfiled come rendere il raggio del bordo e mantenere il raggio dell'ombra anche il raggio
- 5. Come creare una forma d'onda usando css
- 6. Il raggio del bordo dovrebbe ritagliare il contenuto?
- 7. Immagine Css Al passaggio del raggio interno
- 8. Evita l'allungamento sull'immagine css
- 9. "bordo" frastagliato visualizzato a causa del colore di sfondo sull'elemento wrapper con raggio del bordo: 50%;
- 10. css: evita la larghezza del div dall'ampliamento alla larghezza disponibile
- 11. Utilizzo di un raggio del bordo CSS molto più grande delle dimensioni di un elemento
- 12. Bordo CSS in JavaScript
- 13. Specificare il raggio del bordo di UITextField in Swift
- 14. Qual è il modo migliore per creare una maschera di demarcazione del raggio del bordo CSS negativa a mezzo cerchio?
- 15. Evita la sovrapposizione di nodi di bordo in cytoscape.js
- 16. raggio di confine su <th>. Nessun bordo arrotondamento
- 17. Disegno di forma ovale programmaticamente con bordo (raggio dell'angolo) su Android
- 18. Il contenitore in scala non mantiene la forma arrotondata (raggio-limite: 50%)?
- 19. Estensione della lunghezza del bordo css
- 20. La classe CSS non sostituirà lo stile del bordo
- 21. Problema di rendering del bordo punteggiato CSS
- 22. Cambiare forma colore del bordo in fase di esecuzione
- 23. Problemi di ritaglio del raggio CSS3
- 24. Bordo doppio CSS con bordo esterno più spesso del bordo interno
- 25. Evita l'evidenziazione del testo Tabella
- 26. Curva di proprietà CSS limite-raggio esterna
- 27. Bordo d'onda nei CSS
- 28. Cerchio CSS con bordo
- 29. HTML/CSS: Bordo verticale sovrapposizione bordo orizzontale
- 30. Bordo CSS sull'immagine PNG con parti trasparenti
Ogni div è rettangolare ... La forma degli angoli è definito esclusivamente dai valori per 'border-radius'. – zeroflagL
@zeroflagL OP significava "rettangolare" in contrapposizione a "quadrato" ... ad esempio qualsiasi div il cui rapporto di aspetto non è 1: 1. –
Per le persone che desiderano una forma di pillola, ovvero un rettangolo con angoli completamente arrotondati, consultare http://stackoverflow.com/a/18795153/18706 – mahemoff