ตัดคำในตาราง HTML


566

ฉันใช้คำword-wrap: break-wordสั่งตัดคำในdivs และspans อย่างไรก็ตามดูเหมือนว่าจะไม่ทำงานในเซลล์ตาราง ฉันมีตารางตั้งค่าwidth:100%โดยมีหนึ่งแถวและสองคอลัมน์ ข้อความในคอลัมน์แม้ว่าจะมีสไตล์ด้านบนword-wrapแต่ก็ไม่ได้ห่อ ทำให้ข้อความผ่านขอบเขตของเซลล์ สิ่งนี้เกิดขึ้นกับ Firefox, Google Chrome และ Internet Explorer

นี่คือลักษณะที่มา:

td {
  border: 1px solid;
}
<table style="width: 100%;">
  <tr>
    <td>
      <div style="word-wrap: break-word;">
        Looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong word
      </div>
    </td>
    <td><span style="display: inline;">Short word</span></td>
  </tr>
</table>

คำที่ยาวด้านบนมีขนาดใหญ่กว่าขอบเขตของหน้าเว็บของฉัน แต่ไม่ได้ตัดกับ HTML ด้านบน ฉันลองทำตามคำแนะนำด้านล่างเพื่อเพิ่มtext-wrap:suppressและtext-wrap:normalแต่ก็ไม่ได้ช่วยอะไร


เพิ่มเครื่องหมายขีดกลาง <tr> <td style = "text-wrap: Normal; word-wrap: break-word"> นี่คือการส่งข้อความล่วงหน้า </td> </tr>
adatapost

น่าเสียดายที่ข้อความในนั้นมาจากเนื้อหาที่ผู้ใช้สร้างขึ้น แน่นอนฉันสามารถดำเนินการล่วงหน้าและเพิ่มยัติภังค์ แต่ฉันหวังว่าจะมีวิธีที่ดีกว่า
psychotik

ฉันขอโทษที่ใช้คำว่า 'ยัติภังค์ยาก' ใน HTML ยัติภังค์ธรรมดาจะแสดงด้วยอักขระ "-" (& # 45; หรือ & # x2D;) เครื่องหมายยัติภังค์แบบนุ่มจะแสดงโดยการอ้างอิงเอนทิตีอักขระ & shy; (& # 173; หรือ & # xAD;)
adatapost

คุณใช้ <code>break-wor<em>k</em> </code> จริง ๆ หรือไม่ บางทีนั่นอาจมีบางสิ่งที่เกี่ยวข้องกับมัน
Ms2ger

1
หากคุณอยู่ที่นี่คุณอาจต้องการดูwhite-space: pre-wrap developer.mozilla.org/en-US/docs/Web/CSS/white-space
Tom Prats

คำตอบ:


624

การทำงานต่อไปนี้สำหรับฉันใน Internet Explorer สังเกตการเพิ่มtable-layout:fixedแอตทริบิวต์ CSS

td {
  border: 1px solid;
}
<table style="table-layout: fixed; width: 100%">
  <tr>
    <td style="word-wrap: break-word">
      LongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongWord
    </td>
  </tr>
</table>


@ewomac ใช่บางครั้งฉันต้องเพิกเฉยข้อผิดพลาด VS2010 เกี่ยวกับ HTML / CSS ถ้าฉันรู้ว่ามันจะทำงานในเบราว์เซอร์
Marc Stober

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

17
สิ่งนี้ทำให้คอลัมน์อื่นกว้างเกินไป
Clément

2
อย่าลืมอ่านdeveloper.mozilla.org/en-US/docs/Web/CSS/table-layoutความกว้างของตารางและคอลัมน์จะถูกกำหนดโดยความกว้างขององค์ประกอบของตารางและคอลัมน์หรือตามความกว้างของแถวแรกของเซลล์ เซลล์ในแถวถัดไปจะไม่มีผลกับความกว้างของคอลัมน์ เสียงแบบนี้ก็ดีสำหรับการแสดงด้วย
Sam Barnum

2
@ Clémentดูคำตอบของ Indrek ด้านล่างเกี่ยวกับ<colgroup>มันแก้ไขสิ่งนี้สำหรับฉัน
andrewtweber

164
<td style="word-break:break-all;">longtextwithoutspace</td>

หรือ

<span style="word-break:break-all;">longtextwithoutspace</span>

สามารถยืนยันได้ว่าวิธีการของ Pratik ใช้งานได้กับ Safari บน iOS (iPhone) เช่นกัน
occulus

เพื่อหลีกเลี่ยงปัญหาที่เกิดขึ้นกับบางส่วนในระยะสั้นและบางคำยาวคุณอาจ preprocess ข้อความและห่อคำยาวเท่านั้น (พูด,> 40 ตัวอักษร) <span>ใน
nornagon

9
สิ่งนี้ไม่สนับสนุนโดย firefox, opera
meotimdihia

5
สิ่งนี้ไม่ได้ดีกว่าตัวอักษรที่ไม่ใช่คำ (เช่นถ้าฉันมีชุดคำที่สั้นคั่นด้วยช่องว่างมันจะใช้คำเสมอไปจนถึงบรรทัดแล้วแบ่งคำสุดท้ายครึ่ง) Word-wrapจะทำลายคำเฉพาะเมื่อจำเป็น
Hashbrown

table-layout: fixed;วิธีนี้เป็นวิธีที่ดีกว่าเพราะไม่ต้องใช้
กลเม็ดเด็ด

125

ยิงยาว แต่ตรวจสอบอีกครั้งด้วยFirebug (หรือคล้ายกัน) ว่าคุณไม่ได้รับสืบทอดกฎต่อไปนี้โดยไม่ได้ตั้งใจ:

white-space:nowrap;

สิ่งนี้อาจแทนที่พฤติกรรมการขึ้นบรรทัดใหม่ตามที่คุณระบุ


นี่คือสิ่งที่ได้รับการสืบทอดและทำลายคำว่าฉัน
shane lee

@RickGrundy คุณเปลี่ยนเป็นอะไรถ้าคุณมีปัญหานั้น
cokeude

7
@cokedude ฉันสายเกินไปที่นี่ แต่white-space:normal;
Beer Me

46

ปรากฎว่าไม่มีวิธีที่ดีในการทำเช่นนี้ ฉันมาใกล้ที่สุดคือการเพิ่ม "ล้น: ซ่อน;" เพื่อ div รอบโต๊ะและการสูญเสียข้อความ ทางออกที่แท้จริงน่าจะเป็นตารางคูแม้ว่า การใช้ divs และการจัดตำแหน่งสัมพัทธ์ฉันสามารถบรรลุผลเดียวกันลบด้วย<table>

2015 อัปเดต:นี่สำหรับคนอย่างฉันที่ต้องการคำตอบนี้ หลังจากผ่านไป 6 ปีผลงานนี้ต้องขอบคุณผู้มีส่วนร่วมทุกคน

* { // this works for all but td
  word-wrap:break-word;
}

table { // this somehow makes it work for td
  table-layout:fixed;
  width:100%;
}

29

ดังที่กล่าวไว้การวางข้อความภายในdivเกือบจะใช้งานได้ คุณเพียงแค่ต้องระบุwidthของdivซึ่งเป็นโชคดีสำหรับรูปแบบที่คงที่

ใช้งานได้กับ FF 3.6, IE 8, Chrome

<td>
  <div style="width: 442px; word-wrap: break-word">
    <!-- Long Content Here-->
  </div>
</td>

2
คุณสามารถเพิ่มmin-width: 100%พร้อมกับwidthเพื่อให้แน่ใจว่าdivจะใช้เวลาทั้งเซลล์
user1091949

ฉันต้องการห่อคำด้วยเครื่องหมายจุลภาค (,) กดLong,Long,Long,Long,Longไลค์ ฉันต้องการปิดสิ่งนี้โดยใช้เครื่องหมายจุลภาค (,)
Karthikeyan

20

วิธีแก้ปัญหาที่ใช้โอเวอร์โฟลว์แรปและใช้งานได้ดีกับเค้าโครงตารางปกติ + ความกว้างของตาราง 100%

https://jsfiddle.net/krf0v6pw/

HTML

<table>
  <tr>
    <td class="overflow-wrap-hack">
      <div class="content">
        wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
      </div>
    </td>
  </tr>
</table>

CSS

.content{
  word-wrap:break-word; /*old browsers*/
  overflow-wrap:break-word;
}

table{
  width:100%; /*must be set (to any value)*/
}

.overflow-wrap-hack{
  max-width:1px;
}

ประโยชน์ที่ได้รับ:

  • ใช้overflow-wrap:break-wordแทนword-break:break-allแทนซึ่งดีกว่าเพราะพยายามแบ่งช่องว่างก่อนและตัดคำออกเฉพาะในกรณีที่คำนั้นใหญ่กว่าที่เก็บ
  • ไม่table-layout:fixedต้องการ ใช้การปรับขนาดอัตโนมัติตามปกติของคุณ
  • ไม่จำเป็นต้องกำหนดตายตัวwidthหรือกำหนดเป็นmax-widthพิกเซล กำหนด%ผู้ปกครองหากจำเป็น

ทดสอบใน FF57, Chrome62, IE11, Safari11


ในขณะที่แฮ็คนี้ใช้งานได้จริงในทุกเบราว์เซอร์ แต่ระวังว่า CSS spec นั้นไม่รับประกันในเรื่องนี้ ต่อw3.org/TR/CSS21/visudet.html#propdef-max-width , "ผลของ 'นาทีความกว้าง' และ 'ความกว้างสูงสุด' บนโต๊ะตารางแบบอินไลน์เซลล์ตารางคอลัมน์ของตารางและกลุ่มคอลัมน์ ไม่ได้กำหนด"
Mark Amery

17

เปลี่ยนรหัสของคุณ

word-wrap: break-word;

ถึง

word-break:break-all;

ตัวอย่าง

<table style="width: 100%;">
  <tr>
    <td>
      <div style="word-break:break-all;">longtextwithoutspacelongtextwithoutspace Long Content, Long Content, Long Content, Long Content, Long Content, Long Content, Long Content, Long Content, Long Content, Long Content</div>
    </td>
    <td><span style="display: inline;">Short Content</span>
    </td>
  </tr>
</table>


-1; สิ่งนี้ทำให้เบราว์เซอร์เพิกเฉยต่อการแบ่งคำและหยุดกลางคำโดยสมบูรณ์แม้ว่าจะไม่จำเป็นก็ตาม นั่นเป็นพฤติกรรมที่ไม่ต้องการและไม่น่าจะเป็นพฤติกรรมที่ OP ต้องการหรืออย่างอื่นที่พวกเขาไม่เคยใช้มาbreak-wordตั้งแต่แรก
Mark Amery

16

มีปัญหากับ

<td style="word-break:break-all;">longtextwithoutspace</td>

คือมันจะทำงานได้ไม่ดีนักเมื่อข้อความมีช่องว่างเช่น

<td style="word-break:break-all;">long text with andthenlongerwithoutspaces</td>

หากคำว่าandthenlongerwithoutspacesพอดีกับเซลล์ของตารางในหนึ่งบรรทัด แต่long text with andthenlongerwithoutspacesไม่ได้คำยาวจะถูกแบ่งออกเป็นสองส่วนแทนที่จะถูกห่อ

ทางเลือกอื่น: ใส่ U + 200B ( ZWSP ), U + 00AD ( ยัติภังค์อ่อน ) หรือ U + 200C ( ZWNJ ) ในทุก ๆ คำพูดยาว ๆ ทุกครั้งพูดตัวอักษรที่ 20 (ดูคำเตือนด้านล่าง):

td {
  border: 1px solid;
}
<table style="width: 100%;">
  <tr>
    <td>
      <div style="word-wrap: break-word;">
        Looooooooooooooooooo&#xAD;oooooooooooooooooooo&#xAD;oooooooooooooooooooo&#xAD;oooooooooooooooooooo&#xAD;oooooooooooooooooooo&#xAD;oooooooooooooooooooo&#xAD;oooooooooooooooooooo&#xAD;oooooooooooooooooooo&#xAD;oooooooooooooooooooo&#xAD;oooooooooooooong word
      </div>
    </td>
    <td><span style="display: inline;">Short word</span></td>
  </tr>
</table>

คำเตือน : การใส่อักขระที่มีความยาวเป็นศูนย์เพิ่มเติมจะไม่มีผลต่อการอ่าน อย่างไรก็ตามจะมีผลกับข้อความที่คัดลอกไปยังคลิปบอร์ด (แน่นอนว่าตัวละครเหล่านี้คัดลอกมาด้วย) หากมีการใช้ข้อความคลิปบอร์ดในภายหลังในฟังก์ชั่นการค้นหาบางอย่างในแอปพลิเคชันเว็บ ... การค้นหาจะไม่สามารถใช้งานได้ แม้ว่าวิธีนี้สามารถเห็นได้ในเว็บแอปพลิเคชันที่รู้จักกันดีบางอย่างให้หลีกเลี่ยงถ้าเป็นไปได้

คำเตือน : เมื่อแทรกอักขระเพิ่มเติมคุณไม่ควรแยกจุดโค้ดหลาย ๆ จุดภายในกราฟิก ดูhttps://unicode.org/reports/tr29/#Grapheme_Cluster_Boundariesสำหรับข้อมูลเพิ่มเติม


บางทีผลลัพธ์จากสิ่งนี้อาจดีกว่าเล็กน้อยหากคุณใส่เครื่องหมายยัติภังค์ที่อ่อนนุ่มหลังตัวละครทุกตัวเพื่อให้เบราว์เซอร์สามารถแบ่งคำได้อย่างน่าเชื่อถือที่ขอบด้านขวาขององค์ประกอบที่มีความน่าเชื่อถือ
Mark Amery

ในขณะที่นี่เป็นทางออกที่ทำงานได้คำแนะนำที่ไร้เดียงสาที่ดูเหมือนจะเพิ่มบางสิ่งบางอย่าง"หลังจากที่ทุกคนพูดว่าตัวละครที่ 20"จะเต็มไปด้วยกับดักถ้าคุณต้องการที่จะทำมันทางโปรแกรมบนเซิร์ฟเวอร์ของคุณ การวนซ้ำอักขระของสตริง Unicode นั้นยากในภาษาการเขียนโปรแกรมส่วนใหญ่ อย่างดีที่สุดภาษาอาจทำให้ง่ายต่อการวนซ้ำจุดรหัส Unicode แต่ไม่จำเป็นต้องเป็นสิ่งที่เราต้องการเรียกว่า "ตัวอักษร" (เช่นอาจเขียนเป็นจุดรหัสสองจุด) เราอาจหมายถึง "graphemes" จริง ๆ แต่ฉันไม่รู้ภาษาใด ๆที่ทำให้การวนรอบ
Mark Amery

1
@ MarkAmery คุณพูดถูก อย่างไรก็ตามถึงแม้จะมี ASCII ธรรมดา แต่ก็ไม่ได้ยอดเยี่ยม ฉันเพิ่ม "คำเตือน"
Piotr

14

ลองชมตัวอย่างนี้

   <table style="width: 100%;">
    <tr>
        <td><div style="word-break:break-all;">LongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWord</div>
        </td>
        <td>
            <span style="display: inline;">Foo</span>
        </td>
    </tr>
</table>

นี่คือลิงค์สำหรับอ่าน


-1; การใช้break-allจะทำให้เบราว์เซอร์เพิกเฉยต่อการแบ่งคำโดยสมบูรณ์เมื่อตัดสินใจว่าจะวางการแบ่งบรรทัดด้วยเอฟเฟ็กต์ที่แม้ว่าเซลล์ของคุณจะมีร้อยแก้วปกติโดยไม่มีคำยาวมากคุณจะจบลงด้วยการขึ้นบรรทัดใหม่ สิ่งนี้ไม่เป็นที่พึงปรารถนา
Mark Amery

10

ทดสอบใน IE 8 และ Chrome 13

<table style="table-layout: fixed; width: 100%">
    <tr>
        <td>
              <div style="word-wrap: break-word;">
                 longtexthere
              </div>
        </td>
        <td><span style="display: inline;">Foo</span></td>
    </tr>
</table>

สิ่งนี้ทำให้ตารางพอดีกับความกว้างของหน้าและแต่ละคอลัมน์จะรับ 50% ของความกว้าง

หากคุณต้องการคอลัมน์แรกที่จะใช้มากขึ้นของหน้าเพิ่มwidth: 80%ไปtdดังตัวอย่างต่อไปนี้แทน 80% ด้วยอัตราร้อยละที่คุณเลือก

<table style="table-layout: fixed; width: 100%">
    <tr>
        <td style="width:80%">
               <div style="word-wrap: break-word;">
                 longtexthere
               </div>
            </td>
        <td><span style="display: inline;">Foo</span></td>
    </tr>
</table>

10

สิ่งเดียวที่ต้องทำคือการเพิ่มความกว้างให้กับ<td>หรือ<div>ภายใน<td>ขึ้นอยู่กับรูปแบบที่คุณต้องการบรรลุ

เช่น:

<table style="width: 100%;" border="1"><tr>
<td><div style="word-wrap: break-word; width: 100px;">looooooooooodasdsdaasdasdasddddddddddddddddddddddddddddddasdasdasdsadng word</div></td>
<td><span style="display: inline;">Foo</span></td>
</tr></table>

หรือ

 <table style="width: 100%;" border="1"><tr>
    <td width="100" ><div style="word-wrap: break-word; ">looooooooooodasdsdaasdasdasddddddddddddddddddddddddddddddasdasdasdsadng word</div></td>
    <td><span style="display: inline;">Foo</span></td>

</tr></table>

1
นี่เป็นเพียงการทำซ้ำสิ่งที่คำตอบของ loungerdorkได้พูดไปแล้วหลายเดือนก่อนหน้านี้โดยไม่ต้องเพิ่มข้อมูลใหม่หรือข้อมูลเชิงลึกใด ๆ
Mark Amery

มันใช้งานได้สำหรับฉัน
core114

8

คำตอบที่ชนะเงินรางวัลนั้นถูกต้อง แต่จะไม่ทำงานหากแถวแรกของตารางมีเซลล์ที่รวม / รวมเข้าด้วยกัน (ทั้งหมดจะได้รับความกว้างเท่ากัน)

ในกรณีนี้คุณควรใช้colgroupและcolแท็กเพื่อแสดงอย่างถูกต้อง:

<table style="table-layout: fixed; width: 200px">
<colgroup>
    <col style="width: 30%;">
    <col style="width: 70%;">
</colgroup>
<tr>
    <td colspan="2">Merged cell</td>
</tr>
<tr>
    <td style="word-wrap: break-word">VeryLongWordInThisCell</td>
    <td style="word-wrap: break-word">Cell 2</td>
</tr>
</table>

8
<p style="overflow:hidden; width:200px; word-wrap:break-word;">longtexthere<p>

1
-1 สำหรับทั้งการขาดคำอธิบายใด ๆ และการแก้ปัญหาที่ไม่ดี การวางเนื้อหาไว้ในความกว้างคงที่พิกเซลpภายในเซลล์ตารางที่ไม่มีความกว้างพิกเซลคงที่จะเกือบจะจบลงด้วยการpล้นหรือไม่สามารถเติมเซลล์ตารางได้
Mark Amery

8

ดูเหมือนว่าคุณจำเป็นต้องตั้งค่าword-wrap:break-word;องค์ประกอบบล็อก ( div) พร้อมความกว้าง (ไม่ใช่แบบญาติ) ที่ระบุ Ex:

<table style="width: 100%;"><tr>
    <td><div style="display:block; word-wrap: break-word; width: 40em;">loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong word</div></td>
    <td><span style="display: inline;">Foo</span></td>
</tr></table>

หรือใช้word-break:break-allตามคำแนะนำของ Abhishek Simon


5

สิ่งนี้ใช้ได้กับฉัน:

<style type="text/css">
    td {

        /* CSS 3 */
        white-space: -o-pre-wrap;
        word-wrap: break-word;
        white-space: pre-wrap;
        white-space: -moz-pre-wrap;
        white-space: -pre-wrap;
    }

และแอตทริบิวต์ของตารางคือ:

   table {
      table-layout: fixed;
      width: 100%
   }

</style>

เช่นเดียวกับคำตอบอื่น ๆ บิตสำคัญที่ทำให้ใช้table-layout: fixedงานได้ แต่มีคำตอบที่เก่ากว่าที่แนะนำให้ใช้ดังนั้นคำตอบนี้จะไม่เพิ่มข้อมูลใหม่
Mark Amery


4

ฉันพบโซลูชันที่ดูเหมือนจะใช้งานได้ใน Firefox, Google Chrome และ Internet Explorer 7-9 สำหรับการทำเค้าโครงตารางสองคอลัมน์ที่มีข้อความยาวอยู่ด้านหนึ่ง ฉันค้นหาปัญหาที่คล้ายกันทั้งหมดและสิ่งที่ทำงานในเบราว์เซอร์หนึ่งทำให้อีกอันหนึ่งเสียหายหรือการเพิ่มแท็กเพิ่มเติมลงในตารางดูเหมือนจะเป็นการเข้ารหัสที่ไม่ดี

ฉันไม่ได้ใช้ตารางสำหรับสิ่งนี้ DL DT DD เพื่อช่วยเหลือ อย่างน้อยสำหรับการแก้ไขเลย์เอาต์แบบสองคอลัมน์นั่นเป็นอภิธานศัพท์ / พจนานุกรม / การตั้งค่าความหมายคำ

และสไตล์ทั่วไปบางอย่าง

    dl {
        margin-bottom:50px;
    }

    dl dt {
        background:#ccc;
        color:#fff;
        float:left;
        font-weight:bold;
        margin-right:10px;
        padding:5px;
        width:100px;
    }

    dl dd {
        margin:2px 0;
        padding:5px 0;
        word-wrap:break-word;
        margin-left:120px;
    }
<dl>
    <dt>test1</dt>
    <dd>Fusce ultricies mi nec orci tempor sit amet</dd>
    <dt>test2</dt>
    <dd>Fusce ultricies</dd>
    <dt>longest</dt>
    <dd>
        Loremipsumdolorsitametconsecteturadipingemipsumdolorsitametconsecteturaelit.Nulla
        laoreet ante et turpis vulputate condimentum. In in elit nisl. Fusce ultricies
        mi nec orci tempor sit amet luctus dui convallis. Fusce viverra rutrum ipsum,
        in sagittis eros elementum eget. Class aptent taciti sociosqu ad litora
        torquent per conubia nostra, per.
    </dd>
</dl>

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

ฉันลองใช้การตัดคำในเซลล์ตาราง แต่ใช้ได้เฉพาะใน Internet Explorer 9 (และ Firefox และ Google Chrome แน่นอน) ส่วนใหญ่พยายามแก้ไขเบราว์เซอร์ Internet Explorer ที่เสียหายที่นี่


2

ตารางตัดตามค่าเริ่มต้นดังนั้นตรวจสอบให้แน่ใจว่าการแสดงของเซลล์ตารางคือtable-cell:

td {
   display: table-cell;
}

-1; ข้อความในองค์ประกอบ HTML ใด ๆ ที่ล้อมรอบเป็นค่าเริ่มต้นไม่ใช่เฉพาะตาราง คำแนะนำที่นี่ไม่สมเหตุสมผลเลย
Mark Amery

1

style = "รูปแบบตาราง: คงที่, ความกว้าง: 98%; คำตัดคำ: หยุดพัก"

<table bgcolor="white" id="dis" style="table-layout:fixed; width:98%; word-wrap:break-word" border="0" cellpadding="5" cellspacing="0" bordercolordark="white" bordercolorlight="white" >

การสาธิต - http://jsfiddle.net/Ne4BR/749/

มันใช้งานได้ดีสำหรับฉัน ฉันมีลิงค์ยาวที่จะทำให้ตารางเกินกว่า 100% สำหรับเว็บเบราว์เซอร์ ทดสอบบน IE, Chrome, Android และ Safari


นี่เป็นพื้นที่ซ้ำกันเป็นคำตอบที่ได้รับคะแนนสูงสุด ; ในทั้งสองกรณีโซลูชันเดือดลงไปที่ "ใช้table-layout: fixed"
Mark Amery

0

โซลูชันที่ทำงานกับ Google Chrome และ Firefox (ไม่ได้ทดสอบกับ Internet Explorer) คือการตั้งค่าdisplay: table-cellเป็นองค์ประกอบบล็อก


0

คุณสามารถลองสิ่งนี้ถ้ามันเหมาะกับคุณ ...

ใส่ข้อความใน td ของคุณและปิดการใช้งานด้วยสีพื้นหลังสีขาวและกำหนดจำนวนแถว

<table style="width: 100%;">
  <tr>
    <td>
        <textarea rows="4" style="background-color:white;border: none;" disabled>      Looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong word
      </textarea>
    </td>
    <td><span style="display: inline;">Short word</span></td>
  </tr>
</table>
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.