Colspan / Rowspan สำหรับองค์ประกอบที่ตั้งค่าการแสดงผลเป็นเซลล์ตาราง


109

ฉันมีรหัสต่อไปนี้:

<div class="table">
    <div class="row">
        <div class="cell">Cell</div>
        <div class="cell">Cell</div>
    </div>
    <div class="row">
        <div class="cell colspan2">Cell</div>
    </div>
</div>

<style>
    .table {
        display: table;
    }
    .row {
        display: table-row;
    }
    .cell {
        display: table-cell;
    }
    .colspan2 {
        /* What to do here? */
    }
</style>

ค่อนข้างตรงไปตรงมา ฉันจะเพิ่ม colspan (หรือเทียบเท่ากับ colspan) สำหรับองค์ประกอบได้display: table-cellอย่างไร?


5
ใช้แค่โต๊ะไม่ได้เหรอ? มันจะง่ายกว่ามาก นอกจากนี้หากเป็นข้อมูลแบบตารางก็จะมีความหมายมากขึ้นด้วย
punkrockbuddyholly

@thirtydot มันอาจจะทำได้มันจะเป็นความเจ็บปวดและไม่จำเป็น ระบบกริดเช่น 960 ทำได้โดยทั่วไป แต่สำหรับเค้าโครงหน้าทั้งหมด
punkrockbuddyholly

@MrMisterMan: ฉันไม่แน่ใจว่าคุณพูดอะไร 960.gs display: table-cellไม่ได้ใช้
สามสิบดอท

@thirtydot ขอโทษฉันลืมคำถามเฉพาะที่ OP เคยถาม ถูกต้องแล้วคุณไม่สามารถเพิ่ม colspan ผ่าน CSS ได้ ฉันกำลังชี้ให้เห็นว่าคุณสามารถทำให้ div ทำงานเหมือนแถวและคอลัมน์และรวมถึงเซลล์ที่ครอบคลุมหลายคอลัมน์
punkrockbuddyholly

ใช้ตารางจำลองเหมือนกับที่คุณทำสำหรับองค์กรระดับแรกของคุณซึ่งจะช่วยให้คุณสามารถสร้างส่วนท้ายแบบติดหนึบได้ สำหรับการจำลอง colspan ของคุณคุณสามารถสร้างตารางที่ซ้อนกันในเซลล์เฉพาะของคุณซึ่งจะมีแถวเดียวและจำนวนเซลล์ที่คุณต้องการหรือใช้ div ลอยแบบง่าย
Bernard Dusablon

คำตอบ:



27

เนื่องจาก OP ไม่ได้กำหนดไว้อย่างชัดเจนว่าโซลูชันจะต้องเป็น CSS ที่บริสุทธิ์ฉันจะดื้อดึงและใช้วิธีแก้ปัญหาที่ฉันคิดได้ในวันนี้โดยเฉพาะอย่างยิ่งเมื่อมันดูหรูหรากว่าการมีตารางอยู่ในตาราง

ตัวอย่างเท่ากับ <table> มีสองเซลล์ต่อแถวและรถสองแถวที่เซลล์ในแถวที่สองคือ td colspan="2"ด้วย

ฉันได้ทดสอบกับ Iceweasel 20, Firefox 23 และ IE 10

div.table {
  display: table;
  width: 100px;
  background-color: lightblue;
  border-collapse: collapse;
  border: 1px solid red;
}

div.row {
  display: table-row;
}

div.cell {
  display: table-cell;
  border: 1px solid red;
}

div.colspan,
div.colspan+div.cell {
  border: 0;
}

div.colspan>div {
  width: 1px;
}

div.colspan>div>div {
  position: relative;
  width: 99px;
  overflow: hidden;
}
<div class="table">
    <div class="row">
        <div class="cell">cell 1</div>
        <div class="cell">cell 2</div>
    </div>
    <div class="row">
        <div class="cell colspan">
            <div><div>
                cell 3
            </div></div>
        </div>
        <div class="cell"></div>
    </div>
</div>

ดำเนินการถ่ายทอดสด (สาธิต) ที่นี่

แก้ไข: ฉันปรับแต่งโค้ดให้เหมาะกับเครื่องพิมพ์มากขึ้นเนื่องจากพวกเขาปล่อยให้สีพื้นหลังเป็นค่าเริ่มต้น ฉันยังสร้างrowspan-demoโดยได้รับแรงบันดาลใจจากคำตอบที่ล่าช้าที่นี่


ฉันกำลังมองหาวิธีแก้ปัญหาที่คล้ายกัน แต่ฉันมี 5 เซลล์อยู่แถวบนสุด แถวล่างสุดฉันต้องการ 1 เซลล์ขนาดเดียวกับแถวบนสุด จากนั้นเซลล์หนึ่งมี colspan = 2 และอีกเซลล์หนึ่งมี colspan = 2 ทำให้มีทั้งหมด 5 เซลล์ในแถวล่างเช่นกัน นี่คือปัญหา jsfiddle ตามวิธีแก้ปัญหาของคุณ ความคิดใด ๆ ? jsfiddle.net/7wdza4ye/1
Varun Verma

1
@VarunVerma คุณต้องเพิ่มเซลล์ว่างระหว่างเซลล์ 7 และ 8 เพียงแค่เพิ่ม<div class="cell"></div>ผลงาน (อย่างน้อยกับ Firefox) ด้วยการออกแบบนี้คุณจะต้องเติมเซลล์ว่าง ตัวอย่างเช่นถ้าคุณมีมันเพื่อให้เซลล์ 7 เป็น colspan = 3 และเซลล์ 8 เป็นปกติคุณจะต้องมีเซลล์ว่างสองเซลล์ระหว่างเซลล์ 7 และ 8 เว้นแต่คุณจะออกแบบอย่างอื่น (ระยะขอบ? . นอกจากนี้ความกว้าง 100px และ 5 เซลล์ยังทำให้เกิดความยุ่งยากเนื่องจากคำขยาย css-cells การตั้งค่าส่วนเกินดูเหมือนจะไม่สร้างความแตกต่าง คุณต้องคำนวณใหม่widthสำหรับdiv.colspan>div>div.
F-3000

มันได้ผล ขอบคุณ. อันที่จริงฉันได้เพิ่มเซลล์ว่างหลังจากเซลล์ 8 เนื่องจากเส้นขอบด้านล่างไม่ปรากฏขึ้น นี่คือล่าสุด: jsfiddle.net/7wdza4ye/3 แน่ใจว่าจะรับเส้นขอบระหว่างเซลล์ 7 และ 8 ได้อย่างไรมีข้อเสนอแนะหรือไม่? ขอบคุณสำหรับความช่วยเหลือของคุณ.
Varun Verma

1
@VarunVerma ด้วย Chrome ขอบด้านนอกไม่สมบูรณ์หากไม่มีเซลล์ว่างหลังจาก 8 ดังนั้นจึงจำเป็นอย่างยิ่ง วิธีง่ายๆในการเพิ่มเส้นขอบระหว่างเซลล์ที่ 7 และ 8 div.colspan{border-left:1px solid red}จะเป็นนี้: ต้องวางไว้ที่ใดที่หนึ่งด้านล่างกฎที่ตั้งค่า div.colspan แบบไร้ขอบมิฉะนั้นจะถูกลบล้าง
F-3000

ขอบคุณ @ F-3000 นั่นเป็นประโยชน์ สำหรับส่วนที่เหลือนี่คือลิงค์ล่าสุดที่อ้างอิงจากโซลูชันของ F-3000: jsfiddle.net/7wdza4ye/4
Varun Verma

16

วิธีที่ง่ายกว่าที่เหมาะกับฉันใน Chrome 30:

Colspan สามารถจำลองได้โดยใช้display: tableแทนdisplay: table-rowแถว:

.table {
    display: block;
}
.row {
    display: table;
    width: 100%;
}
.cell {
    display: table-cell;
}
.row.colspan2 {/* You'll have to add the 'colspan2' class to the row, and remove the unused <div class=cell> inside it */
    display: block;
}

ข้อผิดพลาดประการเดียวคือเซลล์ของแถวที่ซ้อนกันจะไม่เรียงกันในแนวตั้งเนื่องจากมาจากตารางที่ต่างกัน


7

หากคุณกำลังมองหาวิธี CSS แบบตรงในการจำลอง colspan คุณสามารถใช้display: table-caption.

.table {
  display: table;
}
.row {
  display: table-row;
}
.cell {
  display: table-cell;
  border: 1px solid #000;
}
.colspan2 {
  /* What to do here? */
  display: table-caption;
}
<div class="table">
    <div class="row">
        <div class="cell">Cell</div>
        <div class="cell">Cell</div>
    </div>
    <div class="row">
        <div class="cell colspan2">Cell</div>
    </div>
</div>


ที่น่าทึ่งที่คุณร็อค!
Raj Kamal

1
การใช้ display: table-caption จะขยายคอลัมน์ทั้งหมดและวางแถวที่ด้านบนสุดของตารางเช่นเดียวกับองค์ประกอบคำอธิบายภาพในตาราง html ดังนั้นจึงไม่ได้ผลจริงๆ เฉพาะในกรณีที่คุณต้องการขยายคอลัมน์ทั้งหมดในแถวแรกหรือแถวสุดท้าย
Michiel

6

เพียงใช้ไฟล์table.

ตารางจะขมวดเมื่อถูกใช้เพื่อวัตถุประสงค์ในการจัดวางเท่านั้น

ดูเหมือนว่าข้อมูลแบบตาราง (แถว / คอลัมน์ของข้อมูล) ดังนั้นฉันขอแนะนำให้ใช้ไฟล์table.

ดูคำตอบของฉันสำหรับคำถามนี้สำหรับข้อมูลเพิ่มเติม:

สร้างสิ่งเดียวกันกับ divs เป็นตาราง


11
สิ่งนี้ไม่ใช่สำหรับข้อมูลแบบตารางดังนั้นฉันไม่ต้องการใช้ตาราง :)
Ghost ของ Madara

13
ฉันไม่เข้าใจว่าทำไม CSSing ทุกอย่างถึงทำงานเหมือนตารางจึงดีกว่าแค่ใช้ตาราง ยอมรับtr/ tdสแปมไม่ใช่ html ที่สวยที่สุด แต่นั่นเป็นเหตุผลเดียวหรือไม่ ทุกคนบอกว่าตารางไม่ได้ "หมายถึง" ที่จะใช้ในการจัดรูปแบบ แต่ html เองก็ไม่ได้ "หมายถึง" ที่จะทำครึ่งหนึ่งของสิ่งที่เราคิดว่ายอมรับได้ตามมาตรฐานในปัจจุบันรวมถึงเว็บแอปพลิเคชัน
เล็กน้อย

4
เกือบหนึ่งปีต่อมา แต่ - เล็กน้อยฉันแบ่งปันการระคายเคืองของคุณกับคนที่หลีกเลี่ยงโต๊ะโดยไม่มีเหตุผลอื่นใดนอกจาก "โต๊ะไม่มีสไตล์" อย่างไรก็ตามฉันกำลังใช้การออกแบบที่ตอบสนองต่อบางส่วนซึ่งมีประโยชน์ที่จะมีตารางไม่ใช่ตารางดังนั้นจึงสามารถจัดเรียงใหม่ที่ความกว้างต่ำกว่าได้ การเรียนรู้ที่ฉันไม่มี colspan สำหรับ div นั้นค่อนข้างน่าผิดหวัง
ปั่น

4

นี่เป็นวิธีหนึ่งในการขยายคอลัมน์ใน CSS ที่ฉันใช้สำหรับสถานการณ์ของฉันเอง

https://jsfiddle.net/mb8npttu/

<div class='table'>
    <div class='row'>
        <div class='cell colspan'>
            spanning
        </div>
        <div class='cell'></div>
        <div class='cell'></div>
    </div>

    <div class='row'>
        <div class='cell'>1</div>
        <div class='cell'>2</div>
        <div class='cell'>3</div>
    </div>
</div>

<style>
    .table { display:table; }
    .row { display:table-row; }
    .cell { display:table-cell; }
    .colspan { max-width:1px; overflow:visible; }
</style>

2
ผมต้องเพิ่ม.colspanด้วยwhite-space: nowrap;เพื่อให้ได้ผลที่ฉันต้องการ แต่การทำงานที่ดี
kshetline

2

มีวิธีแก้ไขที่จะทำให้ colspan กว้างขึ้นทั้งตาราง คุณไม่สามารถใช้เทคนิคนี้เพื่อ colspan เป็นส่วนหนึ่งของตารางได้

รหัส:

    *{
      box-sizing: border-box;
    }
    .table {
        display: table;
        position: relative;
    }
    .row {
        display: table-row;
    }
    .cell {
        display: table-cell;
        border: 1px solid red;
        padding: 5px;
        text-align: center;
    }
    .colspan {
        position: absolute;
        left: 0;
        width: 100%;
    }
    .dummycell {
        border-color: transparent;
    }
<div class="table">
    <div class="row">
        <div class="cell">Cell</div>
        <div class="cell">Cell</div>
    </div>
    <div class="row">
        <div class="cell dummycell">&nbsp;</div>
        <div class="cell colspan">Cell</div>
    </div>
    <div class="row">
        <div class="cell">Cell</div>
        <div class="cell">Cell</div>
    </div>
</div>

คำอธิบาย:

เราใช้ตำแหน่งที่แน่นอนบน colspan เพื่อทำให้เต็มความกว้างของตาราง ตารางเองต้องการตำแหน่งที่สัมพันธ์กัน เราใช้ดัมมี่เซลล์เพื่อรักษาความสูงของแถวตำแหน่งที่แน่นอนไม่เป็นไปตามขั้นตอนของเอกสาร

แน่นอนคุณสามารถใช้ flexbox และ grid เพื่อแก้ไขปัญหานี้ได้ในทุกวันนี้


1

CSS

.tablewrapper {
  position: relative;
}
.table {
  display: table;
  position: relative
}
.row {
  display: table-row;
}
.cell {
  border: 1px solid red;
  display: table-cell;
}
.cell.empty
{
  border: none;
  width: 100px;
}
.cell.rowspanned {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 100px;
}
.cell.colspan {
  position: absolute;
  left: 0;
  right: 0;
}

HTML

<div class="tablewrapper">
  <div class="table">
    <div class="row">
      <div class="cell rowspanned">
        Center
      </div>
      <div class="cell">
        Top right
      </div>
    </div>
    <div class="row">
      <div class="cell empty"></div>
      <div class="cell colspan">
        Bottom right
      </div>
    </div>
  </div>
</div>

รหัส


1

สามารถทำได้โดยใช้ CSS เพียงอย่างเดียวและจัดข้อความให้อยู่กึ่งกลางบน colspan "ปลอม"

เคล็ดลับคือการตั้งค่าแถวเป็นposition:relativeจากนั้นวาง "div ว่าง" ในrowตำแหน่งที่คุณต้องการสร้างcolspan(ต้องมีheightเพื่อให้ทำงานได้) กำหนดcellตำแหน่งที่เนื้อหาอยู่ในเป็นdisplay:gridและสุดท้ายนำposition:absoluteไปใช้กับองค์ประกอบ ภายในเซลล์ (และจัดกึ่งกลางตามที่คุณสามารถจัดองค์ประกอบสัมบูรณ์อื่น ๆ ไว้ตรงกลาง)

 .table {
        display: table;
  }
  .row {
      display: table-row;
      position: relative;
  }
  .cell {
      display: table-cell;
      background-color: blue;
      color: white;
      height: 26px;
      padding: 0 8px;
  } 
  .colspan2 {
      display: grid;
  }
  .colspan2 p {
    position:absolute;
    left: 50%;
    transform:translateX(-50%);
    margin: 0;
  }
<div class="table">
    <div class="row">
        <div class="cell">Cell</div>
        <div class="cell">Cell</div>
    </div>
    <div class="row">
        <div class="cell colspan2"><p>Cell</p></div>
        <div class="cell"></div>
    </div>
</div>


0

ด้วยการใช้คลาส div และแอตทริบิวต์ CSS ที่เหมาะสมคุณสามารถเลียนแบบเอฟเฟกต์ที่ต้องการของ colspan และ rowspan ได้

นี่คือ CSS

.table {
    display:table;
}

.row {
    display:table-row;
}

.cell {
    display:table-cell;
    padding: 5px;
    vertical-align: middle;
}

นี่คือตัวอย่าง HTML

<div class="table">
    <div class="row">
        <div class="cell">
            <div class="table">
                <div class="row">
                    <div class="cell">X</div>
                    <div class="cell">Y</div>
                    <div class="cell">Z</div>
                </div>
                <div class="row">
                    <div class="cell">2</div>
                    <div class="cell">4</div>
                    <div class="cell">6</div>
                </div>
            </div>
        </div>
        <div class="cell">
            <div class="table">
                <div class="row">
                    <div class="cell">
                        <div class="table">
                            <div class="row">
                                <div class="cell">A</div>
                            </div>
                            <div class="row">
                                <div class="cell">B</div>
                            </div>
                        </div>
                    </div>
                    <div class="cell">
                        ROW SPAN
                    </div>    
                </div>
            </div>
        </div>
    </div>
</div>    

จากสิ่งที่ฉันเห็นทั้งในคำถามและคำตอบส่วนใหญ่ดูเหมือนว่าผู้คนจะลืมไปว่าใน div ใด ๆ ที่ทำหน้าที่เป็น "เซลล์ตาราง" คุณสามารถแทรก div อื่นที่ทำหน้าที่เหมือนตารางฝังตัวและเริ่มกระบวนการ เกิน.

*** มันไม่น่าดู แต่ใช้ได้กับผู้ที่มองหาการจัดรูปแบบประเภทนี้และต้องการหลีกเลี่ยงตาราง หากใช้สำหรับ DATA LAYOUT TABLE ยังคงใช้งานได้ใน HTML5

หวังว่านี่จะช่วยใครบางคนได้


ประการแรก HTML5 ได้รับการสนับสนุนอย่างเต็มที่สำหรับ<table>- เป็นเพียงว่าคนที่ควรหลีกเลี่ยงการใช้มันสำหรับการจัดรูปแบบภาพ การใช้เพื่อแสดงข้อมูลที่มีโครงสร้างเป็นที่ที่ควรใช้เว้นแต่อย่างอื่น (เช่น<ul>เป็นเพียงตัวอย่าง) จะเหมาะกับงานมากกว่า ประการที่สองเพื่อน 4 โต๊ะ คุณนำคำถามที่น่าสนใจมาไว้บนโต๊ะ (rowspan) แต่คำตอบของคุณจะใช้<table>แทน ฉันต้องดูวิธีแก้ปัญหาของฉันที่นี่ ...
F-3000

ฉันจะแก้ไขความคิดเห็นก่อนหน้านี้ แต่มีการเข้าชมตามเวลาที่กำหนดเช่นเดียวกับคำตอบของฉันเกี่ยวกับ colspan, rowspan สามารถทำได้โดยยุ่งยากน้อยกว่าด้วย ... แนวทางดั้งเดิมของคุณ ดูเอาเอง .
F-3000

ขอบคุณสำหรับความคิดเห็นของคุณ ฉันไม่เคยบอกว่า HTML5 ไม่รองรับตาราง หลายคนต้องการหลีกเลี่ยงมัน บางครั้งเมื่อเขียนเว็บแอป (ซึ่งตรงข้ามกับแค่หน้าประเภทโฆษณา) คุณจำเป็นต้องมีรูปแบบคงที่สำหรับปุ่มและ / หรือตำแหน่งควบคุมมากกว่า
JRC

0

คุณสามารถกำหนดตำแหน่งของเนื้อหา colspan เป็น "สัมพัทธ์" และแถวเป็น "ค่าสัมบูรณ์" ดังนี้

.table {
    display: table;
}
.row {
    display: table-row;
    position: relative;
}
.cell {
    display: table-cell;
}
.colspan2 {
    position: absolute;
    width: 100%;
}

0

คุณไม่สามารถบรรลุสิ่งนี้ได้ในปัจจุบัน

AFAIK สิ่งนี้จะครอบคลุมโดยCSS Tablesซึ่งเป็นข้อกำหนดที่ดูเหมือนจะอยู่ในสถานะ "กำลังดำเนินการ"


0

คุณสามารถลองใช้วิธีนี้ซึ่งคุณสามารถค้นหาวิธีใช้ colspan โดยใช้ div https://codepen.io/pkachhia/pen/JyWMxY

HTML:

<div class="div_format">
            <div class="divTable">
                <div class="divTableBody">
                    <div class="divTableRow">
                        <div class="divTableCell cell_lable">Project Name</div>
                        <div class="divTableCell cell_value">: Testing Project</div>
                        <div class="divTableCell cell_lable">Project Type</div>
                        <div class="divTableCell cell_value">: Web application</div>
                    </div>
                    <div class="divTableRow">
                        <div class="divTableCell cell_lable">Version</div>
                        <div class="divTableCell cell_value">: 1.0.0</div>
                        <div class="divTableCell cell_lable">Start Time</div>
                        <div class="divTableCell cell_value">: 2016-07-10 11:00:21</div>
                    </div>
                    <div class="divTableRow">
                        <div class="divTableCell cell_lable">Document Version</div>
                        <div class="divTableCell cell_value">: 2.0.0</div>
                        <div class="divTableCell cell_lable">End Time</div>
                        <div class="divTableCell cell_value">: 2017-07-10 11:00:23</div>
                    </div>
                    <div class="divTableRow">
                        <div class="divTableCell cell_lable">Document Revision</div>
                        <div class="divTableCell cell_value">: 3</div>
                        <div class="divTableCell cell_lable">Overall Result</div>
                        <div class="divTableCell cell_value txt_bold txt_success">: Passed</div>
                    </div>                          
                </div>
                <div class="divCaptionRow">
                    <div class="divCaptionlabel">Description</div>
                    <div class="divCaptionValue">: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore</div>
                </div>
            </div>
        </div>

CSS:

body {
                font-family: arial
            }
            * {
                -webkit-box-sizing: border-box;
                -moz-box-sizing: border-box;
                box-sizing: border-box
            }
            .div_format {
                width: 100%;
                display: inline-block;
                position: relative
            }           
            .divTable {
                display: table;
                width: 100%;            
            }
            .divTableRow {
                display: table-row
            }
            .divTableHeading {
                background-color: #EEE;
                display: table-header-group
            }
            .divTableCell,
            .divTableHead {
                display: table-cell;
                padding: 10px
            }
            .divTableHeading {
                background-color: #EEE;
                display: table-header-group;
                font-weight: bold
            }
            .divTableFoot {
                background-color: #EEE;
                display: table-footer-group;
                font-weight: bold
            }
            .divTableBody {
                display: table-row-group
            }
            .divCaptionRow{
                display: table-caption;
                caption-side: bottom;
                width: 100%;
            }
            .divCaptionlabel{
                caption-side: bottom;
                display: inline-block;
                background: #ccc;
                padding: 10px;
                width: 15.6%;
                margin-left: 10px;
                color: #727272;
            }
            .divCaptionValue{
                float: right;
                width: 83%;
                padding: 10px 1px;
                border-bottom: 1px solid #dddddd;
                border-right: 10px solid #fff;
                color: #5f5f5f;
                text-align: left;
            }

            .cell_lable {
                background: #d0d0d0;
                border-bottom: 1px solid #ffffff;
                border-left: 10px solid #ffffff;
                border-right: 10px solid #fff;
                width: 15%;
                color: #727272;
            }
            .cell_value {
                border-bottom: 1px solid #dddddd;
                width: 30%;
                border-right: 10px solid #fff;   
                color: #5f5f5f;
            }

-1

แม้ว่านี่จะเป็นคำถามเก่า แต่ฉันก็อยากจะแบ่งปันวิธีแก้ปัญหานี้

<div class="table">
    <div class="row">
        <div class="cell">Cell</div>
        <div class="cell">Cell</div>
    </div>
    <div class="row">
        <div class="cell colspan">
            <div class="spanned-content">Cell</div>
        </div>
    </div>
</div>

<style>
    .table {
        display: table;
    }
    .row {
        display: table-row;
    }
    .cell {
        display: table-cell;
    }
    .colspan:after {
        /* What to do here? */
        content: "c";
        display: inline;
        visibility: hidden;
    }
    .spanned-content {
        position: absolute;
    }
</style>

นี่คือไวโอลิน มันไม่ได้เป็นช่วงเวลาจริงๆและวิธีแก้ปัญหานั้นค่อนข้างแฮ็ก แต่ก็มีประโยชน์ในบางสถานการณ์ ทดสอบบน Chrome 46, Firefox 31 และ IE 11

ในกรณีของฉันฉันต้องนำเสนอข้อมูลที่ไม่ใช่ตารางในลักษณะตารางโดยรักษาความกว้างของคอลัมน์และตั้งชื่อให้กับส่วนย่อยของข้อมูล


แน่นอนคุณสามารถพึ่งพาโซลูชันกริดเช่น Bootstrap's ได้ตลอดเวลา ในกรณีนี้ฉันต้องการความกว้างอัตโนมัติที่มี display: table
Gabriel

นอกจากนี้หากคุณต้องการให้เนื้อหาที่ขยายเป็นสีพื้นหลังคุณจะต้องเติม tr ของคุณด้วย tds เต็มจำนวน :(
Gabriel

ฉันลงเอยด้วยการสร้างตารางและกำหนดแนวคิดของ "ข้อมูลตาราง" เสียใหม่ ^^
Gabriel

-2

ใช้ตารางที่ซ้อนกันเพื่อซ้อนช่วงคอลัมน์ ...

<div class="table">
  <div class="row">
    <div class="cell">
      <div class="table">
        <div class="row">
          <div class="cell">Cell</div>
          <div class="cell">Cell</div>
        </div>
      </div>
    </div>
  </div>

  <div class="row">
    <div class="cell">Cell</div>
  </div>
</div>

หรือใช้ 2 ตารางที่ช่วงคอลัมน์ครอบคลุมทั้งแถว ...

<div class="table">
  <div class="row">
    <div class="cell">Cell</div>
    <div class="cell">Cell</div>
  </div>
</div>

<div class="table">
  <div class="row">
    <div class="cell">Cell</div>
  </div>
</div>

2
คำถามคือจะทำอย่างไรโดยใช้ CSS
Enno Gröper

4
ฉันขอโทษ แต่ดูเหมือนจะเป็นความคิดที่ไม่ดีจริงๆ
Madara's Ghost
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.