Saltar al contenido

¿Cómo eliminar el borde de los elementos de la última fila?

Lucián, parte de nuestro staff, nos hizo el favor de crear este escrito ya que domina perfectamente el tema.

Solución:

Puede agregar un margen inferior negativo a sus elementos y luego ocultar el desbordamiento. Esto ocultará los bordes no deseados.

.qa 
  border-bottom: 1px solid #ccc;
  margin-bottom:-1px;
  margin-top:1px; /*to rectify the bottom margin, we can also consider padding-bottom*/
  
  /*irrelevant styles*/
  padding: 5px;
  margin-left:5px;
  margin-right:5px;
  box-sizing: border-box;
  flex:1 1 40%;


.wrapper 
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
  overflow:hidden;
Question
Answer
Answer
Question
Answer
Question
Answer
Question
Answer
Answer
Question
Answer
Question
Answer
Question
Answer
Question
Answer
Question
Answer
Question
Answer
Answer

Este truco debería funcionar incluso si el número de elementos en una fila es diferente de 2:

.qa 
  border-bottom: 1px solid #ccc;
  margin-bottom:-1px;
  margin-top:1px;
  
  
  /*irrelevant styles*/
  padding: 5px;
  margin-left:5px;
  margin-right:5px;
  box-sizing: border-box;
  flex:1 1 20%;


.wrapper 
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
  overflow:hidden;
Question
Answer
Question
Answer
Question
Answer
Question
Answer
Question
Answer
Question
Answer
answer
Question
Answer
Question
Answer
Question
Answer
Question
Answer
Question
Answer
Question
Answer
answer

También funcionará con un diseño receptivo donde el número de columnas puede cambiar en pantallas pequeñas:

.qa 
  border-bottom: 1px solid #ccc;
  margin-bottom:-1px;
  margin-top:1px;
  
  
  /*irrelevant styles*/
  padding: 5px;
  margin-left:5px;
  margin-right:5px;
  box-sizing: border-box;
  flex:1 1 20%;


.wrapper 
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
  overflow:hidden;


@media all and (max-width:800px) 
  .qa 
    flex:1 1 30%;
  


@media all and (max-width:400px) 
  .qa 
    flex:1 1 40%;
  
Question
Answer
Question
Answer
Question
Answer
Question
Answer
Question
Answer
Question
Answer
answer
Question
Answer
Question
Answer
Question
Answer
Question
Answer
Question
Answer
Question
Answer
answer

1: usa otra clase de CSS

Podemos crear otra clase CSS que elimine cualquier estilo de un elemento de existencia.

.no-border 
  border-bottom: none;

Luego agregue esta clase al elemento html, por ejemplo

  
Question
Answer

2: usa el pseudo selector de CSS


.qa:last-child 
  border-bottom: none;


.qa:nth-last-child(2) 
    border-bottom: none;

No lo pienses como border-bottom.

Piense en ello como border-top y excluir los dos primeros elementos.

Entonces en lugar de esto:

.qa  border-bottom: 1px solid #ccc; 

Prueba esto:

.qa + .qa + .qa  border-top: 1px solid #ccc; 

.qa + .qa + .qa 
  border-top: 1px solid #ccc;
Question
Answer
Question
Answer
Question
Answer
Question
Answer
Question
Answer
Question
Answer
Question
Answer
Question
Answer
Question
Answer
Question
Answer

los combinador del próximo hermano (+) apunta a un elemento que está inmediatamente precedido por otro elemento, y ambos comparten el mismo padre.

Entonces .qa + .qa apuntaría solo .qa elementos que van precedidos de uno .qa elemento.

.qa + .qa + .qa solo objetivos .qa elementos que van precedidos de dos .qa elementos.


Alternativamente, puede probar esto:

.qa:nth-child(n + 3)  border-top: 1px solid #ccc; 

.qa:nth-child(n + 3) 
  border-top: 1px solid #ccc;
Question
Answer
Question
Answer
Question
Answer
Question
Answer
Question
Answer
Question
Answer
Question
Answer
Question
Answer

Eres capaz de añadir valor a nuestro contenido asistiendo con tu veteranía en las reseñas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *