Saltar al contenido

Cómo convertir columnas a filas usando CSS

Intenta entender el código correctamente previamente a utilizarlo a tu trabajo si ttienes algo que aportar puedes comentarlo.

Solución:

MANIFESTACIÓN

Solución CSS: Simplemente gire su td & th para display:block; & su tr para display:table-cell;

CSS:

@media screen and (max-width:767px) 
    table tr > *
        display: block;
    
    table tr 
        display: table-cell;
    

Retirarse: Si sus celdas tienen demasiados datos, el diseño se romperá Ejemplo.

Solución jQuery: Podemos realizar un seguimiento de la altura del elemento para permanecer igual MANIFESTACIÓN

JS:

$(function () 
    switchRowsAndCols("table", 767);
);

function switchRowsAndCols(thisTable, resolution) 
    if ($(window).width() < resolution) 
        switchRowsAndColsInnerFun(thisTable);
    
    $(window).resize(function () 
        if ($(window).width() < resolution) 
            switchRowsAndColsInnerFun(thisTable);
        else
            switchRowsAndColsRemove(thisTable);
        
    );
;

function switchRowsAndColsRemove(thisTable) 
    $("tr > *", thisTable).css(
        height: 'auto'
    );
;

function switchRowsAndColsInnerFun(thisTable) 
    var maxRow = $("tr:first-child() > *", thisTable).length;

    for (var i = maxRow; i >= 0; i--) 

        $("tr > *:nth-child(" + i + ")", thisTable).css(
            height: 'auto'
        );

        var maxHeight = 0;

        $("tr > *:nth-child(" + i + ")", thisTable).each(function () 
            var h = $(this).height();
            maxHeight = h > maxHeight ? h : maxHeight;
        );

        $("tr > *:nth-child(" + i + ")", thisTable).each(function () 
            $(this).height(maxHeight);
        );
    ;
;

Bueno, pensé que ofrecería un poco diferente jQuery solución a su dilema para otras personas que buscan ayuda adicional.

Si tu tener para usar un script, también podría hacer que haga todo (el siguiente script toma 4.2ms para correr, lo que me parece bastante razonable 🙂

Esencialmente, lo que está haciendo a continuación es tomar su tabular-data y convertirlo en un multidimensional array.

1, 2, 3, 4
5, 6, 7, 8 
9, 10, 11, 12

se convierte en:

[[1,5,9],[2,6,10],[3,7,11],[4,8,12]]

Luego, solo es cuestión de que reescriba su table basado en el nuevo array con una pareja for-loops.

Una cosa a tener en cuenta, tendría que vincular esto a un media query o window.resize controlador para obtener el efecto adquirido que está buscando. Eso es tan fácil como cambiar el on.click controlador que he asignado.

¡Echar un vistazo! Es bastante ingenioso:

http://jsfiddle.net/jsR7n/1/

HTML:


');
                row.append( cell );
            
        
    );
);

¡Espero que esto haya sido útil!

http://jsfiddle.net/jsR7n/1/

Te mostramos las reseñas y valoraciones de los lectores

Si te animas, tienes el poder dejar un tutorial acerca de qué le añadirías a esta sección.

¡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 *

Respuestas a preguntas comunes sobre programacion y tecnología

a b c d
...etc

Guión jQuery:

$(function()
    $('#switch').on('click', function()
        var items = [];
        var itemsConv = [];
        var table = $('#switchItems');
        var row,cell;

// FIND ALL OF THE DATA
        $("tr").each(function()
            var trRow = [];
            $(this).children().each(function() 
                trRow.push($(this).text());
            );
            items.push(trRow);
        );
        for(var j=0;j' );
            table.append( row );
            for(var j=0; j'+itemsConv[i][j]+'