top rounded radius corners bootstrap html css border background-color css3

html - rounded - border-radius+background-color== borde recortado



css rounded corners (7)

¿Se debe usar una mesa? Aquí hay un ejemplo usando DIV''s: http://jsfiddle.net/6KwGy/1/

HTML:

<div id="container"> <div class="row"> <div class="leftHalf"> <p>data 1</p> </div> <div class="rightHalf"> <p>data 2</p> </div> </div> <div class="row"> <div class="leftHalf"> <p>data 1</p> </div> <div class="rightHalf"> <p>data 2</p> </div> </div> <div class="row"> <div class="leftHalf"> <p>data 1</p> </div> <div class="rightHalf"> <p>data 2</p> </div> </div> </div>

CSS:

.container { width: 100%; } .leftHalf { float:left; width:50%; } .rightHalf { float:left; width:50%; } .row { float: left; width: 100%; } #container .row:nth-child(odd) { background-color: #EEEEEE; } #container .row:first-child { border-top: 1px solid black; border-top-left-radius: 5px; border-top-right-radius: 5px; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px; -webkit-border-radius-topleft: 5px; -webkit-border-radius-topright: 5px; } #container .row:last-child { border-bottom: 1px solid black; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; -moz-border-radius-bottomleft: 5px; -moz-border-radius-bottomright: 5px; -webkit-border-radius-bottomleft: 5px; -webkit-border-radius-bottomright: 5px; } #container .row { border-left: 1px solid black; border-right: 1px solid black; }

Considere un div con los atributos de CSS de border , border y background-color aplicados:

<div style="background-color:#EEEEEE; border-radius:10px; border: 1px black solid;"> Blah </div>

Ahora considere un diseño similar pero con el background-color especificado en un div interno:

<div style="border-radius:10px; border: 1px black solid;"> <div style="background-color:#EEEEEE;"> Blah </div> </div>

Estoy consternado por el hecho de que el background-color de background-color del <div> interno está oscureciendo el borde del <div> exterior .

Esta es una muestra simplificada del problema. En realidad, estoy usando una <table> como elemento interno con colores de filas alternados. Y estoy usando un <div> como el elemento externo ya que border-radius no parece funcionar en el elemento <table> . Aquí hay una jsfiddle de una muestra de este problema.

¿Alguien tiene una sugerencia para una solución?


¿Sería aceptable darle un poco de espacio al div? De esa forma, los colores de fondo no entrarán en conflicto.


Agregue algo de relleno, o haga el color de fondo en el elemento externo


Agregue estas reglas de CSS:

tr:first-of-type td:first-child { border-top-left-radius: 5px; } tr:first-of-type td:last-child { border-top-right-radius: 5px; } tr:last-of-type td:first-child { border-bottom-left-radius: 5px; } tr:last-of-type td:last-child { border-bottom-right-radius: 5px; }

Ver el fiddle actualizado.


Probar overflow:hidden en el div externo:

<div style="border-radius:10px; border: 1px black solid; overflow: hidden"> <div style="background-color:#EEEEEE;"> Blah </div> </div>


Puede solucionar esto aplicando overflow: hidden; al elemento con el borde. Una manera mucho más limpia, creo.


También puede agregar un radio de borde al elemento hijo.

<div style="border-radius:10px; border: 1px black solid;"> <div style="background-color:#EEEEEE; border-radius:10px;"> Blah </div> </div>