Estoy tratando de crear un calendario personalizado en HTML y Javascript donde pueda arrastrar y soltar tareas de un día para otro. Me gustaría tener la primera columna y las dos últimas columnas como ancho fijo y tener las columnas restantes (de lunes a viernes) fluidas para que la tabla siempre llene el 100% de su matriz.Tabla HTML - tabla de 100% de ancho, combinación de ancho fijo y columnas de fluido UNIFORM
El problema que estoy teniendo es que las TD fluidas se dimensionan automáticamente en función de la cantidad de contenido que contienen, lo que significa que cuando arrastro una tarea de un día a otro el ancho de las columnas cambia de tamaño. Me gustaría tener de lunes a viernes el mismo tamaño independientemente del contenido y sin configurar el desbordamiento de texto: oculto; (como las tareas siempre deben estar visibles)
es decir, quiero que las columnas grises tengan un ancho fijo y las columnas rojas fluidas pero uniformes entre sí, independientemente del contenido que contengan.
Editar: estoy usando jQuery para la funcionalidad de arrastrar y soltar lo que una solución JavaScript también estaría bien (aunque no es preferible).
HTML:
<table>
<tr>
<th class="row_header">Row Header</th>
<th class="fluid">Mon</th>
<th class="fluid">Tue</th>
<th class="fluid">Wed</th>
<th class="fluid">Thurs</th>
<th class="fluid">Fri</th>
<th class="weekend">Sat</th>
<th class="weekend">Sun</th>
</tr>
<tr>
<td>Before Lunch</td>
<td>This col will be wider than the others because it has lots of content...</td>
<td></td>
<td></td>
<td></td>
<td>But I would really like them to always be the same size!</td>
<td></td>
<td></td>
</tr>
</table>
CSS:
table {
width: 100%;
}
td, th {
border:1px solid black;
}
th {
font-weight:bold;
background:red;
}
.row_header {
width:50px;
background:#ccc;
}
.weekend {
width:100px;
background:#ccc;
}
.fluid {
???
}
Muy buena pregunta. No estoy seguro de que se pueda hacer con CSS puro. Probablemente necesites utilizar JavaScript para calcular el ancho total de la tabla y aplicar estilos en consecuencia. –