SaurabhLP
Estoy tratando de hacer una barra lateral personalizada en wordpress, tengo todos los elementos y la información en li’s, lo que estoy tratando de hacer es cambiar la mitad del total de li’s a la izquierda y la otra mitad a la derecha…
Lo que estoy usando es float/clear left and right, eso no parece funcionar como yo quería…
Estructura HTML: –
<ul>
<li class="left">Left</li>
<li class="left">Left</li>
<li class="left">Left</li>
<li class="left">Left</li>
<li class="left">Left</li>
<li class="right">Right</li>
<li class="right">Right</li>
<li class="right">Right</li>
<li class="right">Right</li>
<li class="right">Right</li>
</ul>
El CSS: –
.left { float:left; width:50%; clear:left; }
.right { float:right; width:50%; clear:right }
Si está dispuesto a renunciar a su disco de estilo de lista (según el navegador), puede hacerlo fácilmente sin flotadores ni modificar su marcado.
ul {
-webkit-columns: 2;
-moz-columns: 2;
columns: 2;
}
-
esto es lo que estoy buscando, pero no es compatible con IE ninguna solución para esto…
– SaurabhLP
2 de abril de 2013 a las 5:13
-
Lo único que puedes hacer es encontrar un polyfill adecuado. A ver si funciona este: github.com/BetleyWhitehorne/CSS3MultiColumn
– cimarrón
02/04/2013 a las 10:55
Axente Paul
¿Por qué no lo frenas así, según el caso? 🙂
<ul class="left">
<li>Left</li>
<li>Left</li>
<li>Left</li>
<li>Left</li>
<li>Left</li>
</ul>
<ul class="right">
<li>Right</li>
<li>Right</li>
<li>Right</li>
<li>Right</li>
<li>Right</li>
</ul>
.left{
float: left;
width: 50%; }
.right{
float: right;
width: 50%; }
o hazlo como dice @Xander 🙂
-
Sí, me gusta más este porque es más fácil ver la intención del HTML.
– Colin De Clue
1 de abril de 2013 a las 14:05
-
estoy trabajando en wordpress para esto tengo que personalizar la estructura HTML, ese es un proceso bastante largo…
– SaurabhLP
2 de abril de 2013 a las 5:04
-
Excelente una lista de datos aparte y convertirla en dos listas solo para fines de visualización no hace ningún sentido semánticamente.
– CBroe
3 de abril de 2013 a las 7:58
Alex
Mezcla tu HTML. cuando un elemento es clear
ed lo hace contra el elemento flotante previamente; en tu caso, fue el sexto elemento despejando el quinto:
<ul>
<li class="left">Left</li>
<li class="right">Right</li>
<li class="left">Left</li>
<li class="right">Right</li>
<li class="left">Left</li>
<li class="right">Right</li>
<li class="left">Left</li>
<li class="right">Right</li>
<li class="left">Left</li>
<li class="right">Right</li>
</ul>
-
Aunque el HTML/CSS está bien, lo encontraría un poco difícil en cuanto a semántica y mantenimiento. prefiero ver a
ul
elementos para agrupar los enlaces izquierdo y derecho respectivamente.– Marc Audet
1 de abril de 2013 a las 14:02
-
@MarcAudet cierto. agrupar el contenido en “columnas” sería un enfoque más fácil de mantener. sin embargo, mi respuesta ayuda a aclarar/ilustrar el problema de por qué las columnas están sesgadas; y mas importante como
clear
arenafloat
función s…– Alex
1 de abril de 2013 a las 14:07
-
Estoy de acuerdo con @Xander: es bueno, así que vea que se discuten ambas opciones, ya que ambas son útiles según el contenido que se marque.
– Marc Audet
01/04/2013 a las 14:10
-
ya que estoy usando widgets de wordpress para que wordpress no adapte dinámicamente esa cosa porque los widgets se pueden organizar como el usuario quiera ser …
– SaurabhLP
2 de abril de 2013 a las 5:28
Hecho con marcas y estilos simples.
http://codepen.io/ruinunes/pen/bpgpZV
HAML:
%ul.chat
%li.stamp
Saturday
%span 20:32
%li.left Who is it?
%li.right It's Little Nero's, sir. I have your pizza.
%li.left Leave it on the doorstep and get the hell outta here
%li.stamp
Saturday
%span 20:33
%li.right Okay, but what about the money?
%li.left What money?
%li.right Well, you have to pay for your pizza, sir.
%li.left Is that a fact? How much do I owe you?
%li.left Keep the change, ya filthy animal!
%li.right Cheapskate.
SCSS
ul.chat {
font-family: sans-serif;
list-style:none;
margin: 0 auto;
padding: 0;
width: 50%;
li {
margin-bottom: 10px;
display: inline-block;
border-radius: 8px;
padding: 10px;
&.left {
background: #e3e3e3;
float:left;
margin-right: 50%;
width:50%;
border-top-left-radius: 0;
}
&.right {
background: #6CCE66;
color: #fff;
float: right;
width: 50%;
border-top-right-radius: 0;
}
&.stamp {
color: #666;
font-size: 80%;
text-align: center;
width: 100%;
span {
color: #999;
}
}
}
}
Funciona como se esperaba. jsfiddle.net/B3YLp
– Alex G.
1 de abril de 2013 a las 13:37