HTML colspan ใน CSS


251

ฉันพยายามสร้างเลย์เอาต์ที่คล้ายกันดังต่อไปนี้:

+---+---+---+
|   |   |   |
+---+---+---+
|           |
+-----------+

โดยที่ด้านล่างเติมช่องว่างของแถวบน

หากนี่เป็นตารางจริงฉันสามารถทำสิ่งนี้ได้อย่างง่ายดาย<td colspan="3">แต่เมื่อฉันสร้างเค้าโครงเหมือนตารางฉันไม่สามารถใช้<table>แท็กได้ เป็นไปได้โดยใช้ CSS?


8
ทางออกที่ดีที่สุดขึ้นอยู่กับสิ่งที่เกิดขึ้นในตาราง หากเป็นข้อมูล (สิ่งที่อยู่ในตาราง) ให้ใช้ตาราง หากคุณกำลังใช้ตารางเพื่อควบคุมการจัดวางของหน้าแสดงว่าโซลูชัน HTML + CSS ด้านล่างนั้นดีกว่า
mwcz

เพิ่มมาร์กอัปสำหรับทั้งสองกรณีจากนั้นแสดงเพียงครั้งละหนึ่งรายการโดยใช้คลาส CSS คิวรีสื่อบันทึก
DigitalDesignDj

2
ลืม CSS หากคุณแสดงข้อมูลแบบตารางคุณจะรู้ได้อย่างชัดเจนว่าจะมีคอลัมน์จำนวนเท่าใด ใช้colspanคุณลักษณะ
Tihomir Mitkov

ฉันจะทำเช่นนี้โดย bootstrap หรือตารางที่กำหนดเองจาก bootstrap
อรุณประสาทส ES

หากคุณใช้ CSS3 คุณสามารถใช้ columnSpan แตกต่างจาก <td colspan = "#"> คุณไม่มีตัวเลือกในการกำหนดจำนวนคอลัมน์ แต่คุณสามารถขยายคอลัมน์ทั้งหมดได้ w3schools.com/cssref/css3_pr_column-span.asp
MistyDawn

คำตอบ:


407

ไม่มีง่ายๆ, CSS colspanสง่างามอนาล็อกเพื่อ

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


10
ตารางเป็นองค์ประกอบโครงสร้างและเพียงเพราะการใช้ colspan เปลี่ยนการปรากฏตัวของมันไม่ได้หมายความว่ามันไม่ได้ CSS ใช้เพื่อจัดองค์ประกอบสไตล์และไม่เปลี่ยนโครงสร้าง W3C กล่าวถึงโครงสร้างตารางที่นี่: w3.org/TR/html401/struct/tables.html#h-11.2
Rob

88
Rob เข้าใจตำแหน่งของคุณ แต่ดูในคำแนะนำของ W3C - โดยเฉพาะเกี่ยวกับกระบวนทัศน์ของตารางทั้งหมด - และคุณจะพบว่าส่วนหนึ่งของการพิจารณาของพวกเขาคือการนำเสนอตาราง ความคิดที่ว่าตารางถูกสร้างขึ้นอย่างหมดจดเนื่องจากโครงสร้างเป็นนวนิยายร่วมสมัยที่ฉันคิดว่าเราทุกคนจะได้รับการบริการที่ดีขึ้นเพื่อหยุดการแพร่กระจาย ประเด็นคือเราต้องหยุดการดื้อดึงเกี่ยวกับตาราง มันจะผิดสำหรับฉันที่จะบอกว่าพวกเขากำลังนำเสนออยู่เสมอและมันก็ผิดที่คุณจะบอกว่าพวกเขามีโครงสร้างอยู่เสมอ ความจริงไม่ได้เป็นเพียงแค่ตัดและทำให้แห้ง
เดวิด

4
ดูเหมือนว่าคำตอบของคุณคือคำตอบยอดนิยม :) ฉันมีความสุขที่ได้เรียนรู้ว่าหลักคำสอนที่ต่อต้านตาราง (ซึ่งฉันซื้อไว้) นั้นเข้มงวดเกินไป ฉันตอบด้วยคำตอบของฉันเพียงตราบเท่าที่ฉันยังคงคิดว่าcolspanเป็นเครื่องมือที่เหมาะสมสำหรับงาน คำตอบของฉันถูก 75% และคุณเป็นจริง 100% คุณควรกลับมาที่ SO
mwcz

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

14
นี่เป็นบทความสั้น ๆ เกี่ยวกับคำตอบอื่น ๆ (ไม่ระบุ) ไม่ใช่คำตอบของคำถามที่ถาม
Jukka K. Korpela

56

มี colspan ใน CSS ไม่เป็นเท่าที่ผมทราบ แต่จะมีcolumn-spanสำหรับรูปแบบคอลัมน์หลายในอนาคตอันใกล้ แต่เนื่องจากมันเป็นเพียงร่างใน CSS3 คุณสามารถตรวจสอบในที่นี่ อย่างไรก็ตามคุณสามารถแก้ไขปัญหาโดยใช้divและspanด้วยการแสดงผลแบบตารางเช่นนี้

นี่จะเป็น HTML:

<div class="table">
  <div class="row">
    <span class="cell red first"></span>
    <span class="cell blue fill"></span>
    <span class="cell green last"></span>
  </div>
</div>
<div class="table">
  <div class="row">
    <span class="cell black"></span>
  </div>
</div>

และนี่จะเป็น CSS:

  /* this is to reproduce table-like structure
     for the sake of table-less layout. */
  .table { display:table; table-layout:fixed; width:100px; }
  .row { display:table-row; height:10px; }
  .cell { display:table-cell; }

  /* this is where the colspan tricks works. */
  span { width:100%; }

  /* below is for visual recognition test purposes only. */
  .red { background:red; }
  .blue { background:blue; }
  .green { background:green; }
  .black { background:black; }

  /* this is the benefit of using table display, it is able 
     to set the width of it's child object to fill the rest of 
     the parent width as in table */
  .first { width: 20px; }
  .last { width: 30px; }
  .fill { width: 100%; }

เหตุผลเดียวที่จะใช้เคล็ดลับนี้คือการได้รับประโยชน์จากtable-layoutพฤติกรรมฉันใช้มันมากหากตั้งค่า div และ span width เป็นเปอร์เซ็นต์ที่แน่นอนไม่ได้ทำให้ข้อกำหนดการออกแบบของเราสมบูรณ์

แต่ถ้าคุณไม่ต้องการได้รับประโยชน์จากtable-layoutพฤติกรรมคำตอบของ Durilaiจะเหมาะกับคุณมากพอ


4
Yup แต่การแก้ไขเล็ก ๆ น้อย ๆ : แทนมันควรจะเป็น.span { ... span { ...
Slavik Meltser

2
การใช้divแท็กเพื่อแสดงข้อมูลแบบตารางเป็นไม่ดีเท่าที่ใช้tableเพื่อการควบคุมรูปแบบหน้า
Tihomir Mitkov

1
@TichomirMitkov ขึ้นอยู่กับว่าคุณใช้การออกแบบที่ตอบสนองต่อการเปลี่ยนแปลงเลย์เอาต์หรือไม่ซึ่งในบางครั้งก็สามารถทำงานได้ค่อนข้างดี
Simon_Weaver

4
นี่ไม่ได้ตอบคำถามจริงๆเพราะคุณมีสองตารางหลังจากกันในตัวอย่างที่คุณให้ (Ietwo divs กับ "table" class)
Winter

21

ข้อเสนอแนะอื่นคือการใช้ flexbox แทนตารางโดยสิ้นเชิง แน่นอนว่าเป็น "เบราว์เซอร์ที่ทันสมัย" แน่นอน แต่มาในปี 2016;)

อย่างน้อยนี่อาจเป็นทางเลือกสำหรับผู้ที่มองหาคำตอบในทุกวันนี้เนื่องจากโพสต์ต้นฉบับมาจากปี 2010

นี่คือคำแนะนำที่ดี: https://css-tricks.com/snippets/css/a-guide-to-flexbox/

.table {
  border: 1px solid red;
  padding: 2px;
  max-width: 300px;
  display: flex;
  flex-flow: row wrap;
}
.table-cell {
  border: 1px solid blue;
  flex: 1 30%;
}
.colspan-3 {
  border: 1px solid green;
  flex: 1 100%;
}
<div class="table">
  <div class="table-cell">
    row 1 - cell 1
  </div>
  <div class="table-cell">
    row 1 - cell 2
  </div>
  <div class="table-cell">
    row 1 - cell 3
  </div>
  <div class="table-cell colspan-3">
    row 2 - cell 1 (spans 3 columns)
  </div>
</div>


8
<div style="width: 100%;">
    <div style="float: left; width: 33%;">Row 1 - Cell 1</div>
    <div style="float: left; width: 34%;">Row 1 - Cell 2</div>
    <div style="float: left; width: 33%;">Row 1 - Cell 3</div>
</div>
<div style="clear: left; width: 100%;">
Row 2 - Cell 1
</div>

ฉันไม่รู้ความกว้างของเซลล์
หอคอย

1
จากนั้นอย่าใส่ความกว้าง มันไม่ควรสำคัญ แต่ถ้าคุณต้องการให้พวกเขาขยายความกว้างเท่ากันดังนั้นตัวหารหลักสองตัวนั้นต้องมีความกว้างเท่ากัน
Dustin Laine

1
คุณสามารถใช้ความกว้าง: คำนวณ (100% / 3) ซึ่งจะทำได้ดีกว่าการเพิ่มค่ากลาง 1%
ii iml0sto1 1

5

นั่นไม่ใช่ส่วนหนึ่งของขอบเขตของ CSS colspanอธิบายโครงสร้างของเนื้อหาของหน้าหรือให้ความหมายบางอย่างกับข้อมูลในตารางซึ่งเป็นงานของ HTML


OP อธิบายถึง "การสร้างเค้าโครงเหมือนตาราง" อย่างชัดเจนโดยไม่มีความหมายเชิงโครงสร้าง มันเป็นจุดประสงค์ของตาราง CSS ไม่ใช่หรือ? ไม่มีเหตุผลวัตถุประสงค์ในการรักษาสถานที่ให้บริการที่แตกต่างกว่า colspan ตารางทั้งหมดคือถ้ามีองค์ประกอบตาราง CSS ออกแบบอย่างเดียวทำไมไม่คุณสมบัติ CSS colspan การออกแบบเท่านั้น ...
Skippy le Grand gourou

2
ลองดูคำตอบที่ได้รับคะแนนสูงสุดสำหรับคำถามนี้ ความรู้สึกของคุณถูกพูดถึงแล้วและฉันก็เห็นด้วยกับมัน ความเห็นของฉันเกี่ยวกับปัญหานี้เปลี่ยนไปอย่างแน่นอนในห้าปีนับตั้งแต่ฉันเขียนคำตอบนี้
mwcz

4

หากต้องการให้คำตอบล่าสุด: วิธีที่ดีที่สุดในการทำวันนี้คือการใช้เค้าโครงตาราง css ดังนี้:

.container {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  grid-template-rows: auto;
  grid-template-areas: 
    "top-left top-middle top-right"
    "bottom bottom bottom"
}

.item-a {
  grid-area: top-left;
}
.item-b {
  grid-area: top-middle;
}
.item-c {
  grid-area: top-right;
}
.item-d {
  grid-area: bottom;
}

และ HTML

<div class="item-a">1</div>
<div class="item-b">2</div>
<div class="item-c">3</div>
<div class="item-d">123</div>

3

คุณสามารถลองใช้ระบบกริดเช่นhttp://960.gs/

โค้ดของคุณจะเป็นแบบนี้สมมติว่าคุณใช้เลย์เอาต์ "คอลัมน์ 12":

<div class="container_12">
<div class="grid_4">1</div><div class="grid_4">2</div><div class="grid_4">3</div>
<div class="clear"></div>
<div class="grid_12">123</div>
</div>

3

ลองเพิ่มdisplay: table-cell; width: 1%;องค์ประกอบเซลล์ตารางของคุณ


มันจะช่วยได้อย่างไร แนวคิดพื้นฐานของตารางคือทุกแถวมีเซลล์เหมือนกัน หากหนึ่งในแถวมีเซลล์ที่ใช้ "ความกว้าง: 1%" ได้สำเร็จแถวทั้งหมดจะมีคอลัมน์นั้นเป็น "ความกว้าง: 1%" จุดของ "colspan" คือการใช้ 2 (หรือมากกว่า) ของคอลัมน์ความกว้างคงที่และรวมพวกเขาเพื่อให้ได้ความกว้างรวม
IAM_AL_X

3

ฉันเคยประสบความสำเร็จมาแล้วแม้ว่ามันจะขึ้นอยู่กับคุณสมบัติบางอย่างในการทำงาน:

table-layout: fixed border-collapse: separate

และเซลล์ 'ความกว้าง' ที่แบ่ง / ขยายได้อย่างง่ายดายเช่น 4 เซลล์กว้าง 25%:

.div-table-cell,
* {
  box-sizing: border-box;
}

.div-table {
  display: table;
  border: solid 1px #ccc;
  border-left: none;
  border-bottom: none;
  table-layout: fixed;
  margin: 10px auto;
  width: 50%;
  border-collapse: separate;
  background: #eee;
}

.div-table-row {
  display: table-row;
}

.div-table-cell {
  display: table-cell;
  padding: 15px;
  border-left: solid 1px #ccc;
  border-bottom: solid 1px #ccc;
  text-align: center;
  background: #ddd;
}

.colspan-3 {
  width: 300%;
  display: table;
  background: #eee;
}

.row-1 .div-table-cell:before {
  content: "row 1: ";
}

.row-2 .div-table-cell:before {
  content: "row 2: ";
}

.row-3 .div-table-cell:before {
  content: "row 3: ";
  font-weight: bold;
}

.div-table-row-at-the-top {
  display: table-header-group;
}
<div class="div-table">

  <div class="div-table-row row-1">

    <div class="div-table-cell">Cell 1</div>
    <div class="div-table-cell">Cell 2</div>
    <div class="div-table-cell">Cell 3</div>

  </div>

  <div class="div-table-row row-2">

    <div class="div-table-cell colspan-3">
      Cor blimey he's only gone and done it.
    </div>

  </div>

  <div class="div-table-row row-3">

    <div class="div-table-cell">Cell 1</div>
    <div class="div-table-cell">Cell 2</div>
    <div class="div-table-cell">Cell 3</div>

  </div>

</div>

https://jsfiddle.net/sfjw26rb/2/

นอกจากนี้การใช้การแสดง: table-header-group หรือ table-footer group เป็นวิธีที่สะดวกในการกระโดดองค์ประกอบ 'row' ไปยังด้านบน / ล่างของ 'table'


0

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

HTML:

<div id="gridheading">
<h4>Sl.No</h4><h4 class="big">Name</h4><h4>Location</h4><h4>column</h4><h4>column</h4><h4>column</h4><h4>Amount(Rs)</h4><h4>View</h4><h4>Edit</h4><h4>Delete</h4> 
</div>
<div class="data"> 
<h4>01</h4><h4 class="big">test</h4><h4>TVM</h4><h4>A</h4><h4>I</h4><h4>4575</h4><h4>4575</h4></div>
<div class="data"> 
<h4>01</h4><h4 class="big">test</h4><h4>TVM</h4><h4>A</h4><h4>I</h4><h4>4575</h4><h4>4575</h4></div>

CSS:

#gridheading {
    background: #ccc;
    border-bottom: 1px dotted #BBBBBB;
    font-size: 12px;
    line-height: 30px;
    text-transform: capitalize;
}
.data {
    border-bottom: 1px dotted #BBBBBB;
    display: block;
    font-weight: normal;
    line-height: 20px;
    text-align: left;
    word-wrap: break-word;
}
 h4 {
    border-right: thin dotted #000000;
    display: table-cell;
    margin-right: 100px;
    text-align: center;
    width: 100px;
    word-wrap: break-word;
}
.data .big {
    margin-right: 150px;
    width: 200px;
}

0
column-span: all; /* W3C */
-webkit-column-span: all; /* Safari & Chrome */
-moz-column-span: all; /* Firefox */
-ms-column-span: all; /* Internet Explorer */
-o-column-span: all; /* Opera */

http://www.quackit.com/css/css3/properties/css_column-span.cfm


การสนับสนุนไม่เพียงพอ ... IE8 ยังเป็นปัญหาที่น่าเศร้าสำหรับวิวัฒนาการ
beauXjames

9
OP ต้องการมีtable-cellช่วงคอลัมน์หลายคอลัมน์ column-spanใช้สำหรับควบคุมการจัดวางคอลัมน์ ซึ่งช่วยให้คุณสามารถส่งข้อความไปตามคอลัมน์ต่างๆได้เช่นเดียวกับที่หนังสือพิมพ์ทำ
Chris Wesseling

1
แน่นอน - ในขณะนี้จะเป็นการดีที่จะใช้บนจอแสดงผล: ตารางเซลล์; องค์ประกอบจะใช้กับคอลัมน์ css เท่านั้น: jsfiddle.net/mk0rrLc3/1
Mark

@ Mark-- การขยายคอลัมน์ถูกใช้กับคุณสมบัติการนับคอลัมน์ที่กำหนดบนพาเรนต์ ไม่จำเป็นต้องเปลี่ยนประเภทการแสดงผล นอกจากนี้การขยายคอลัมน์สามารถยอมรับได้เพียง 1 ค่าหรือทั้งหมดเท่านั้นซึ่งไม่อนุญาตให้ทำการแยกส่วนดังนั้น "การขยายคอลัมน์: 2" ตามที่เห็นในซอของคุณไม่ใช่การใช้คุณสมบัติที่ถูกต้อง
MistyDawn

0

หากคุณมาที่นี่เพราะคุณต้องเปิดหรือปิดcolspanคุณสมบัติ (พูดสำหรับเลย์เอาต์มือถือ):

ทำซ้ำ<td>s และแสดงเฉพาะรายการที่ต้องการเท่านั้นcolspan:

table.colspan--on td.single {
  display: none;
}

table.colspan--off td.both {
  display: none;
}
<!-- simple table -->
<table class="colspan--on">
  <thead>
    <th>col 1</th>
    <th>col 2</th>
  </thead>
  <tbody>
    <tr>
      <!-- normal row -->
      <td>a</td>
      <td>b</td>
    </tr>
    <tr>
      <!-- the <td> spanning both columns -->
      <td class="both" colspan="2">both</td>

      <!-- the two single-column <td>s -->
      <td class="single">A</td>
      <td class="single">B</td>
    </tr>
    <tr>
      <!-- normal row -->
      <td>a</td>
      <td>b</td>
    </tr>
  </tbody>
</table>
<!--
that's all
-->

 

<!--
stuff only needed for making this interactive example looking good:
-->
<br><br>
<button onclick="toggle()">Toggle colspan</button>
<script>/*toggle classes*/var tableClasses = document.querySelector('table').classList;
function toggle() {
  tableClasses.toggle('colspan--on');
  tableClasses.toggle('colspan--off');
}
</script>
<style>/* some not-needed styles to make this example more appealing */
td {text-align: center;}
table, td, th {border-collapse: collapse; border: 1px solid black;}</style>


0

คุณสมบัติ CSS "column-count", "column-gap" และ "Column-span" สามารถทำได้ในลักษณะที่เก็บคอลัมน์ทั้งหมดของตารางหลอกไว้ใน wrapper เดียวกัน (HTML ยังคงดีและเรียบร้อย)

คำเตือนเดียวคือคุณสามารถกำหนดได้เพียง 1 คอลัมน์หรือคอลัมน์ทั้งหมดและการขยายคอลัมน์ยังไม่สามารถใช้งานได้ใน Firefox ดังนั้น CSS เพิ่มเติมบางอย่างจำเป็นต้องมีเพื่อให้แน่ใจว่าจะแสดงอย่างถูกต้อง https://www.w3schools.com/css/css3_multiple_columns.asp

.split-me {
  -webkit-column-count: 3;
  -webkit-column-gap: 0;
  -moz-column-count: 3;
  -moz-column-gap: 0;
  column-count: 3;
  column-gap: 0;
}

.cols {
  /* column-span is 1 by default */
  column-span: 1;
}

div.three-span {
  column-span: all !important;
}

/* alternate style for column-span in Firefox */
@-moz-document url-prefix(){
  .three-span {
    position: absolute;
    left: 8px;
    right: 8px;
    top: auto;
    width: auto;
  }
}


    
<p>The column width stays fully dynamic, just like flex-box, evenly scaling on resize.</p>

<div class='split-me'>
  <div class='col-1 cols'>Text inside Column 1 div.</div>
  <div class='col-2 cols'>Text inside Column 2 div.</div>
  <div class='col-3 cols'>Text inside Column 3 div.</div>
  <div class='three-span'>Text div spanning 3 columns.</div>
</div>



  <style>
/* Non-Essential Visual Styles */

html * { font-size: 12pt; font-family: Arial; text-align: center; }
.split-me>* { padding: 5px; } 
.cols { border: 2px dashed black; border-left: none; }
.col-1 { background-color: #ddffff; border-left: 2px dashed black; }
.col-2 { background-color: #ffddff; }
.col-3 { background-color: #ffffdd; }
.three-span {
  border: 2px dashed black; border-top: none;
  text-align: center; background-color: #ddffdd;
}
  </style>


0

ฉันมาที่นี่เพราะปัจจุบันบล็อกของตาราง WordPress ไม่รองรับพารามิเตอร์ colspan และฉันคิดว่าฉันจะแทนที่มันด้วย CSS นี่คือทางออกของฉันโดยสมมติว่าคอลัมน์มีความกว้างเท่ากัน:

table {
  width: 100%;
}

table td {
  width: 50%;
  background: #dbdbdb;
  text-align: center;
}

table tr:nth-child(2n+1) {
  position:relative;
  display:block;
  height:20px;
  background:green;
}

table tr:nth-child(2n+1) td {
  position:absolute;
  left:0;
  right:-100%;
  width: auto;
  top:0;
  bottom:0;
  background:red;
  text-align:center;
}
<table>
    <tr>
        <td>row</td>
    </tr>
    <tr>
        <td>cell</td>
        <td>cell</td>
    </tr>
    <tr>
        <td>row</td>
    </tr>
    <tr>
        <td>cell</td>
        <td>cell</td>
    </tr>
</table>


-1

คุณสามารถทำposition:absolute;สิ่งต่าง ๆ และระบุความกว้างได้เสมอ มันไม่ใช่วิธีที่คล่องแคล่วในการทำ แต่จะได้ผล


มีวิธีมากมายในการบรรลุเป้าหมายนี้มากกว่าใช้มาร์กอัปที่ไม่ดี การวางตำแหน่งที่แน่นอนเพื่อบังคับเค้าโครงได้รับการพิจารณาว่าเป็นการปฏิบัติที่ไม่ดีเสมอ
MistyDawn

-1

ฉันได้สร้างซอนี้:

ป้อนคำอธิบายรูปภาพที่นี่

http://jsfiddle.net/wo40ev18/3/

HTML

<div id="table">
<div class="caption">
    Center Caption
</div>
<div class="group">
      <div class="row">
            <div class="cell">Link 1t</div>
            <div class="cell"></div>
          <div class="cell"></div>
          <div class="cell"></div>
            <div class="cell"></div>
            <div class="cell ">Link 2</div>
      </div>
</div>

CSS

   #table {
    display:table;
}

.group {display: table-row-group; }

.row {
    display:table-row;
    height: 80px;
    line-height: 80px;
}

.cell {
    display:table-cell;
    width:1%;
    text-align: center;
    border:1px solid grey;
    height: 80px
        line-height: 80px;
}

.caption {
    border:1px solid red; caption-side: top; display: table-caption; text-align: center; 
    position: relative;
    top: 80px;
    height: 80px;
      height: 80px;
    line-height: 80px;

}

1
แต่ฉันคิดว่าตารางบูทสแตรปสามารถทำได้ง่ายมาก
อรุณประสาทส ES

นี่ไม่ใช่วิธีแก้ปัญหาที่ผู้ถามต้องการ มันเพิ่งสร้างแถวของเซลล์แบบอินไลน์
MistyDawn

-1

สามารถใช้คลาส Media Query เพื่อให้ได้บางสิ่งที่ผ่านได้ด้วยมาร์กอัปซ้ำ นี่คือวิธีของฉันกับ bootstrap:

  <tr class="total">
    <td colspan="1" class="visible-xs"></td>
    <td colspan="5" class="hidden-xs"></td>
    <td class="focus">Total</td>
    <td class="focus" colspan="2"><%= number_to_currency @cart.total %></td>
  </tr>

colspan 1 สำหรับมือถือ, colspan 5 สำหรับผู้อื่นด้วย CSS ที่ใช้งานได้


ผู้ถามระบุว่าเขาไม่สามารถใช้องค์ประกอบ <table> HTML ได้ ถ้าเขาทำได้นี่จะเป็นปัญหาง่าย ๆ ในการแก้
MistyDawn
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.