එහි අන්තර්ගතයට වඩා විශාල නොවන කොට් div ාශයක් සාදා ගන්නේ කෙසේද?


2086

මට සමාන පිරිසැලසුමක් ඇත:

<div>
    <table>
    </table>
</div>

මගේ divකැමැත්ත තරම් පුළුල් වීමට පමණක් මම කැමතියි table.


90
බලපෑම "හැකිලීම" ලෙස හැඳින්වෙන අතර, පිළිතුරු දීමට මෙය කිරීමට ක්‍රම කිහිපයක් තිබේ (පාවෙන, පේළිගත, අවම / උපරිම පළල) මේ සියල්ලෙන් තෝරා ගැනීමට අතුරු ආබාධ ඇත
annakata

Answers:


2440

විසඳුම ඔබේ divසැකසුමයි display: inline-block.


239
@ leif81 ඔබට a spanහෝ a divහෝ ulවෙනත් දෙයක් භාවිතා කළ හැකිය , වැදගත් කොටස වන්නේ අවම පළල වීමට ඔබ කැමති කන්ටේනරය සඳහා CSS දේපලdisplay: inline-block
miahelf

10
යමෙකු පුදුම වන්නේ නම්: යමෙකුට මවුපිය මත "පෙළ-පෙළගැස්වීම: කේන්ද්‍රය" සහ "පෙළ පෙළගැස්වීම: වම" සැකසීම මඟින් මවුපිය කේන්ද්‍රගත කළ හැකිය (උදා: <body style = "text-align: center"> < span style = "text-align: left; display: inline-block;"> <table> ... </table> </span> </body>)
බර්න්ස්ටයින්

12
එය පරතරය සමඟ මට ක්‍රෝම් මත ක්‍රියා නොකරයි, නමුත් සුදු අවකාශය භාවිතා කරයි: nowrap;
ඇල්බන්ක්ස්

57
ඔබ display: inline-blockදේපල සැකසූ පසු margin: 0 auto;බලාපොරොත්තු වූ පරිදි ක්‍රියාත්මක නොවන බව කරුණාවෙන් සලකන්න . එවැනි අවස්ථාවකදී මව් බහාලුම තිබේ text-align: center;නම් inline-blockමූලද්‍රව්‍යය තිරස් අතට කේන්ද්‍රගත වේ.
සවාස් වෙඩෝවා

12
inline-blockමට වැඩ කළේ නැහැ, නමුත් inline-flexකළා.
mareoraft

332

ඔබට අවශ්‍ය වන්නේ බ්ලොක් මූලද්‍රව්‍යයක් වන අතර එය CSS ලෙස හඳුන්වන පළල හැකිලීමට සරිලන පළලක් වන අතර පිරිවිතර එවැනි දෙයක් ලබා ගැනීමට ආශීර්වාද ලත් ක්‍රමයක් සපයන්නේ නැත. CSS2 හි, හැකිලීම-ගැලපීම ඉලක්කයක් නොවේ, නමුත් එයින් අදහස් කරන්නේ බ්‍රව්සරයට සිහින් වාතයෙන් පළලක් ලබා ගත යුතු තත්වයක් සමඟ කටයුතු කිරීමයි. එම තත්වයන් නම්:

  • පාවෙන්න
  • නියත වශයෙන්ම ස්ථානගත කළ මූලද්‍රව්‍යය
  • inline-block මූලද්‍රව්‍යය
  • වගු අංගය

පළල නිශ්චිතව දක්වා නොමැති විට. CSS3 හි ඔබට අවශ්‍ය දේ එකතු කිරීමට ඔවුන් සිතන බව මට අසන්නට ලැබුණි. දැනට, ඉහත එකක් සමඟ කරන්න.

විශේෂාංගය කෙලින්ම නිරාවරණය නොකිරීමට ගත් තීරණය අමුතු බවක් පෙනෙන්නට තිබුණත් හොඳ හේතුවක් තිබේ. එය මිල අධිකයි. හැකිලීම-ගැලපීම යන්නෙන් අදහස් කරන්නේ අවම වශයෙන් දෙවරක්වත් ආකෘතිකරණය කිරීමයි: මූලද්‍රව්‍යයක පළල දැන ගන්නා තෙක් ඔබට එය ආකෘතිකරණය කිරීම ආරම්භ කළ නොහැකි අතර සම්පූර්ණ අන්තර්ගතය හරහා යන පළල ගණනය කළ නොහැක. තවද, කෙනෙකුට සිතිය හැකි සෑම විටම හැකිලීමට-ගැලපෙන අංගයක් අවශ්‍ය නොවේ. ඔබේ මේසය වටා අමතර බෙදීමක් අවශ්‍ය වන්නේ ඇයි? සමහර විට මේස ශීර්ෂ පා you ය ඔබට අවශ්‍ය වනු ඇත.


35
මම කියන්නේ inline-blockහරියටම මේ සඳහා අදහස් කර ඇති අතර ගැටලුව පරිපූර්ණ ලෙස විසඳයි.
miahelf

6
මම හිතන්නේ ඔවුන් css4 හි එකතු කරන අතර එය එසේ වනු ඇතcontent-box, max-content, min-content, available, fit-content, auto
මුහම්මද් උමර්

5
නව fit-contentමූල පදය (මෙම පිළිතුර මුලින්ම ලියන විට නොපවතින අතර තවමත් පූර්ණ සහය නොදක්වයි ) මූලද්‍රව්‍යයකට “හැකිලීමට-ගැලපෙන” ප්‍රමාණය පැහැදිලිව යෙදීමට ඔබට ඉඩ සලසයි, ඔබ මෙහි යෝජනා කර ඇති ඕනෑම හක්කයක අවශ්‍යතාවය ඉවත් කරයි. ආධාරයෙන් බ්‍රව්සර් පමණක් ඉලක්ක කිරීමට තරම් වාසනාවන්තයි. +1 එසේ වුවද; මේවා දැනට ප්‍රයෝජනවත් වේ!
මාර්ක් අමරි

floatමට කරන්න අවශ්‍ය දේ කළා!
nipunasudha

230

මම හිතන්නේ පාවිච්චි කරනවා

display: inline-block;

කෙසේ වෙතත්, බ්‍රව්සර් අනුකූලතාව ගැන මට විශ්වාස නැත.


තවත් විසඳුමක් වනුයේ ඔබේ divතවත් තැනකට ඔතා divගැනීමයි (ඔබට වාරණ හැසිරීම පවත්වා ගැනීමට අවශ්‍ය නම්):

HTML:

<div>
    <div class="yourdiv">
        content
    </div>
</div>

CSS:

.yourdiv
{
    display: inline;
}

23
බ්‍රව්සරයේ අනුකූලතා ප්‍රශ්නයට පිළිතුරු සැපයීම සඳහා: මෙය DIV අංග මත IE7 / 8 සමඟ ක්‍රියා නොකරනු ඇත. ඔබ SPAN අංග භාවිතා කළ යුතුය.
මැට් බ්‍රොක්

@feeela - මම සෑම විටම විශාලනය ඉදිරිපිට * තබමි *display: inline; *zoom: 1;. මෙම විශේෂිත තත්වය සඳහා මම පරීක්‍ෂා කර නැත, නමුත් හැව්ලයිට් හැක් අවශ්‍ය වන්නේ IE7 සඳහා හෝ IE7 මාදිලියේ IE7 සඳහා පමණක් බව මම අතීතයේ දී සොයාගෙන ඇත්තෙමි (හෝ IE8 quirks!).
රොබෝකාට්

obrobocat ඔව් එය සැබවින්ම inline-blockIE 7 හි සක්‍රීය කර ඇති ක්‍රියාමාර්ගයකි.
feeela

@feela - ඔබේ අදහස මට තේරුමක් නැත! මම යෝජනා කළේ * විශාලනය ඉදිරිපිට තැබීමට * Ie * විශාලනය: 1;
රොබෝකාට්

4
ඔබේ පේළිගත-බ්ලොක් විසඳුම ක්‍රියාත්මක වන්නේ මන්දැයි කරුණාකර පැහැදිලි කරන්න.
HelloWorldNoMore

221

display: inline-block ඔබේ මූලද්‍රව්‍යයට අමතර ආන්තිකයක් එක් කරයි.

මම මෙය නිර්දේශ කරමි:

#element {
    display: table; /* IE8+ and all other modern browsers */
}

බෝනස්: ඔබ ද දැන් ඉතා පහසුවෙන් බව විසිතුරු නව මධ්යස්ථානය හැකි #elementපමණක් එකතු කිරීම මඟින් margin: 0 auto.


14
+1 - මෙය නවීන බ්‍රව්සර් සඳහා හොඳම හා වඩාත්ම පිරිසිදු විසඳුම වන අතර එමඟින් මූලද්‍රව්‍යය කේන්ද්‍රගත වීමට ඉඩ සලසයි. position: absolute<IE8 සඳහා කොන්දේසි සහිත අදහස් දැක්වීමක් අවශ්‍ය වේ.
uınbɐɥs

21
සඳහන් කිරීමෙන් display: inline-blockකිසිදු ආන්තිකයක් එකතු නොවේ. නමුත් සීඑස්එස් විසින් පේළිගත කළ හැකි මූලද්‍රව්‍ය අතර පෙන්වීමට සුදු අවකාශය හසුරුවයි.
feeela

ඔබේ ප්‍රදර්ශනයේ විසඳුම: වගුව ක්‍රියා කරන්නේ මන්දැයි කරුණාකර පැහැදිලි කරන්න.
HelloWorldNoMore

2
inline-block මඟින් මූලද්රව්යය එහි මවුපියන් තුළ ස්ථානගත කිරීමට නොහැකි කරයි (උදා: පෙළ-පෙළගැස්මක් තිබේ නම්: මධ්යස්ථානය ඔබට එය වමට
ඇලවිය නොහැක

1
ඔබට තිබේ නම් යා යුතු මාර්ගය මෙයයිposition: absolute
m4heshd

94

ඔබට උත්සාහ කළ හැකිය fit-content(CSS3):

div {
  width: fit-content; 
  /* To adjust the height as well */ 
  height: fit-content;
}

1
Art බාර්ට්ලොමිජ්ස්කිරා IE හෝ සූර්යග්‍රහණයේ වැඩ කරන ආදේශකයක්ද?
ඉන්ලයින්

11
මෙය ඕනෑවට වඩා අර්ථවත් කරයි, ඇත්ත වශයෙන්ම එයට සහාය නොමැත.
Sava B.

86

මට වැඩ කරන්නේ:

display: table;

දී div. ( ෆයර්ෆොක්ස් සහ ගූගල් ක්‍රෝම් හි පරීක්ෂා කර ඇත ).


5
ඔව්, විශේෂයෙන් ඔබට ආන්තිකය සමඟ කේන්ද්‍රගත වීමට අවශ්‍ය නම්: ස්වයංක්‍රීය. එම අවස්ථාව ඉන්ලයින්-බ්ලොක් විසඳුම නොවේ.
Zsolt Szatmari

1
මෙම මූලද්රව්යය තුළ පෑඩින් වැඩ කිරීමට අවශ්ය නම්, ඔබ border-collapse: separate;ශෛලිය සකස් කළ යුතු බව සලකන්න . එය බොහෝ බ්‍රව්සර් වල පෙරනිමිය වන නමුත් බොහෝ විට css රාමු වල අගය නැවත සැකසීම collapse.
රුස්ලාන් ස්ටෙල්මාචෙන්කෝ

2009 දී සාදන ලද වින්ඩෝස් මොබයිල් 6.5 දුරකථනයක MSIE 6 හි පරීක්‍ෂා කරන ලදි: එය පූර්ණ පළල බෙදීමකට (එය දුරකථනයක ගැටලුවක් වීමට ඉඩක් නැත) පිරිහීමට ලක් කරයි. යමෙක් ඩෙස්ක්ටොප් එකක 8 ට වඩා අඩු ඉන්ටර්නෙට් එක්ස්ප්ලෝරර් අනුවාදයක් භාවිතා කරන්නේ නම්, ඔවුන් සහාය නොදක්වන මෙහෙයුම් පද්ධතියක් භාවිතා කරයි (IE6 පැමිණියේ එක්ස්පී සමඟ ය, අයිඊ 7 විස්ටා සමඟ පැමිණියේය); එම යන්ත්‍රයේ අන්තර්ජාලය අඛණ්ඩව භාවිතා කිරීමට අවශ්‍ය නම් මම ඔවුන්ව ග්නූ / ලිනක්ස් වෙත යාවත්කාලීන කරන ලෙස පවසන පිටුවකට හරවා යවමි.
සීලස් එස්. බ්‍රවුන්

85

වඩා හොඳ විසඳුම් දෙකක් තිබේ

  1. display: inline-block;

    හෝ

  2. display: table;

මේ දෙකෙන් display:table;වඩා හොඳය, මන්ද display: inline-block;අමතර ආන්තිකයක් එකතු වන බැවිනි .

display:inline-block;අමතර ඉඩ නිවැරදි කිරීම සඳහා ඔබට negative ණ ආන්තික ක්‍රමය භාවිතා කළ හැකි බැවිනි


2
display:tableවඩා හොඳ වීමට හේතුව පැහැදිලි කිරීමට ඔබට අවශ්‍යද?
නතානියෙල් ෆෝඩ්

1
දර්ශනය සඳහා: ඉන්ලයින්-බ්ලොක්, අමතර පරතරය නිවැරදි කිරීම සඳහා ඔබ negative ණ ආන්තික ක්‍රමය භාවිතා කළ යුතුය.
ෂුවෝ හබීබ්

8
Ather නතානියෙල්ෆෝඩ්, display:tableබ්ලොක් හැඩතල ගැන්වීමේ සන්දර්භය තුළ මූලද්‍රව්‍යය තබයි, එවිට ඔබට සුපුරුදු පරිදි ආන්තිකය සමඟ එහි පිහිටීම පාලනය කළ හැකිය. display:-inline-*, අනෙක් අතට, මූලද්‍රව්‍යය පේළිගත කිරීමේ හැඩතල ගැන්වීමේ සන්දර්භයට ඇතුළත් කරන අතර, බ්‍රව්සරය එය වටා නිර්නාමික බ්ලොක් එතුම නිර්මාණය කිරීමට හේතු වන අතර, උරුම වූ අකුරු / රේඛා-උස සැකසුම් සහිත රේඛා කොටුව අඩංගු වන අතර, එම රේඛා කොටුවට බ්ලොක් ඇතුල් කරන්න (පෙළගැස්වීම) එය පෙරනිමියෙන් මූලික වශයෙන් සිරස් අතට). මෙයට වැඩි "මැජික්" ඇතුළත් වන අතර එබැවින් විභව විස්මයන්.
ඉල්යා ස්ට්‍රෙල්ට්සින්

84

3
මෙම ගැටළුව ඇති ඕනෑම අයෙකුට මෙම සියලු මෝස්තර එකතු කළ යුතුය. ෆයර්ෆොක්ස් භාවිතා නොකරන විට ආන්තිකයන් එකතු කරන ලදි-moz-inline-stack
ජස්ටින්

43

දේ සන්දර්භය තුළ නොදැන මෙම දිස් වනු ඇත, නමුත් මම CSS ආකාරයේ දේපල විශ්වාස floatඑක්කෝ leftහෝ rightමෙම බලපෑමක් ඇති කරනු ඇත. අනෙක් අතට, එය පෙළ වටා පාවීමට ඉඩ දීම වැනි වෙනත් අතුරු ආබාධ ද ඇති කරයි.

මම වැරදියි නම් කරුණාකර මාව නිවැරදි කරන්න, මට 100% ක් විශ්වාස නැත, දැනට එය මා විසින්ම පරීක්ෂා කළ නොහැක.


1
ඔව්, CSS 2.1 හි. (CSS2.0 මගින් පාවෙන පළල සම්පූර්ණ පළල බවට පත් කරනු ඇත, නමුත් ඇත්ත වශයෙන්ම එය කරන්නේ IE5 / Mac පමණි). වගු සහ පාවෙන ඒවා ඒවායේ අන්තර්ගතයට සරිලන පරිදි හැකි එකම සංදර්ශක වර්ග වේ.
බොබින්ස්

41

ඔබේ ප්‍රශ්නයට පිළිතුර අනාගතයේ මගේ මිතුරා ...

එනම් "අභ්‍යන්තර" නවතම CSS3 යාවත්කාලීනය සමඟ පැමිණේ

width: intrinsic;

අවාසනාවට IE එය පසුපසින් සිටින බැවින් එය තවමත් එයට සහාය නොදක්වයි

ඒ ගැන වැඩි විස්තර: CSS අභ්‍යන්තර සහ බාහිර ප්‍රමාණයේ මොඩියුල මට්ටම 3 සහ මට භාවිතා කළ හැකිද? : අභ්‍යන්තර සහ බාහිර ප්‍රමාණකරණය .

දැන් ඔබට සෑහීමට පත් විය යුතු <span>හෝ <div>සකසා

display: inline-block;

12
intrinsicඅගය සම්මත නොවන බැවින්. එය ඇත්ත වශයෙන්ම ය width: max-content. එහි හෝ දැනටමත් සම්බන්ධ කර ඇති කෙටුම්පතේ MDN පිටුව බලන්න .
maryisdead

35
width:1px;
white-space: nowrap;

මට හොඳින් වැඩ කරයි :)


නමුත් නැවතත් මගේ නඩුව ඩිවිෂන් එකක් තුළ පෙළක් මිස ඕපී වැනි වගුවක් නොවේ.
රූයි මාර්ක්ස්

jquery හි ui ස්ලයිඩරය සඳහා මෙය විශිෂ්ටයි, මන්ද ඔබට අන්තර්ගත අයිතමයේ පළල සැකසීමට අවශ්‍ය නොවන නිසා
CoffeJunky

34

CSS2 අනුකූල විසඳුමක් භාවිතා කිරීම:

.my-div
{
    min-width: 100px;
}

ඔබට හැකි තරම් කුඩා ප්‍රමාණයක් බලහත්කාරයෙන් පාවීමටද පුළුවන, නමුත් ඔබේ කොට් within ාශය තුළ යමක් පාවෙමින් තිබේ නම් ඔබට පැහැදිලි විසඳුමක් භාවිතා කිරීමට අවශ්‍ය වනු ඇත :

.my-div
{
    float: left;
}

3
එය විය යුතුයි. ඔබ භාවිතා කරන්නේ කුමන ඩොක්ටිපයද?
සෝවියට්

26

හරි, බොහෝ අවස්ථාවන්හීදී ඔබට පෙරනිමියෙන් heightහා widthස්වයංක්‍රීයව කිසිවක් කිරීමට අවශ්‍ය නැත , නමුත් එය ඔබගේ කාරණය නොවේ නම්, inline-blockදර්ශනය යෙදීම ඔබ වෙනුවෙන් වැඩ කරයි ... මම ඔබ වෙනුවෙන් නිර්මාණය කරන කේතය දෙස බලන්න, එය එසේ වේ ඔබ සොයන දේ:

div {
  display: inline-block;
}
<div>
  <table>
    <tr>
      <td>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi ultrices feugiat massa sed laoreet. Maecenas et magna egestas, facilisis purus quis, vestibulum nibh.</td>
      <td>Nunc auctor aliquam est ac viverra. Sed enim nisi, feugiat sed accumsan eu, convallis eget felis. Pellentesque consequat eu leo nec pharetra. Aenean interdum enim dapibus diam.</td>
      <td>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi ultrices feugiat massa sed laoreet. Maecenas et magna egestas, facilisis purus quis, vestibulum nibh.</td>
    </tr>
  </table>
</div>


22

මෙය අදහස් දැක්වීම්වල සඳහන් කර ඇති අතර එක් පිළිතුරකින් සොයා ගැනීම දුෂ්කර ය:

ඔබ display: flexකුමන හේතුවක් නිසා හෝ භාවිතා කරන්නේ නම් , ඔබට ඒ වෙනුවට භාවිතා කළ හැකිය:

div {
    display: inline-flex;
}

මෙය බ්‍රව්සර් හරහා ද පුළුල් ලෙස සහාය වේ.


19

display: inline;(හෝ white-space: nowrap;) භාවිතා කිරීමෙන් ඔබට එය කළ හැකිය .

මෙය ඔබට ප්‍රයෝජනවත් වේ යැයි මම බලාපොරොත්තු වෙමි.


19

ඔබට inline-block@ user473598 ලෙස භාවිතා කළ හැකිය, නමුත් පැරණි බ්‍රව්සර් වලින් පරිස්සම් වන්න ..

/* Your're working with */
display: inline-block;

/* For IE 7 */
zoom: 1;
*display: inline;

/* For Mozilla Firefox < 3.0 */
display:-moz-inline-stack;

මොසිල්ලා ඉන්ලයින්-බ්ලොක් සඳහා කිසිසේත් සහාය නොදක්වයි, නමුත් ඒවා සතුව -moz-inline-stackඇත්තේ එක හා සමානයි

inline-blockදර්ශන ගුණාංග වටා ඇති සමහර හරස් බ්‍රව්සර : https://css-tricks.com/snippets/css/cross-browser-inline-block/

මෙම ගුණාංගය සමඟ ඔබට පරීක්ෂණ කිහිපයක් දැක ගත හැකිය: https://robertnyman.com/2010/02/24/css-display-inline-block-why-it-rocks-and-why-it-sucks/


1
ඔයා මොනවද කියවන්නේ? මොසිල්ලා ෆයර්ෆොක්ස් inline-block3.0 (2008) සිට සහය දක්වයි . මූලාශ්රය: developer.mozilla.org/en-US/docs/Web/CSS/...
Chazy Chaz

18

ඔබේ CSS ගොනුවට ශෛලියක් යොදන්න

div { 
    width: fit-content; 
}

1
මෙය හරස් බ්‍රව්සරයට සහය දක්වන විකල්පයක් යැයි මම නොසිතමි.
ඩේවිඩ් රෙක්ටර්

2
දැනට එජ් හි වැඩ නොකරයි: caniuse.com/#search=fit-content
molsson

ඔබට -moz-fit-contentඑෆ්එෆ් සඳහා භාවිතා කළ හැකිය , අනුමාන වශයෙන් අනෙක් වෙළෙන්දන්ගේ උපසර්ගයන් ඒවාට ඉඩ දෙනු ඇත ...
බෙන්ජ්


18
<table cellpadding="0" cellspacing="0" border="0">
    <tr>
        <td>
            <div id="content_lalala">
                this content inside the div being inside a table, needs no inline properties and the table is the one expanding to the content of this div =)
            </div>
        </td>
    </tr>
</table>

සමහර විට මිනිසුන් වගු වලට කැමති නැති බව මම දනිමි, නමුත් මම ඔබට පැවසිය යුතුය, මම සීඑස්එස් ඉන්ලයින් හැක්ස් අත්හදා බැලුවෙමි, ඔවුන් යම් යම් අංශවල වැඩ කළ නමුත් අනෙක් අය එසේ නොකළේය, එබැවින් පුළුල් වන ඩිවි එක ඇතුලත් කිරීම පහසුය වගුවක් ... සහ ... එයට පේළිගත දේපල තිබිය හැකි හෝ නොතිබිය හැකි අතර තවමත් වගුවේ අන්තර්ගතයේ මුළු පළල රඳවා තබා ගනී. =)


2
එය "නිසි" ක්‍රමය නොවේ, නමුත් IE6 / 7/8 බොහෝ විට දේවල් ටිකක් සංකීර්ණ වූ විට හොඳට සෙල්ලම් නොකරයි, එබැවින් ඔබ එය එසේ කරන්නේ මන්දැයි මට සම්පූර්ණයෙන්ම වැටහෙයි. ඔබ මගේ ඡන්දය ලබා ගත්තා.
ක්‍රේගෝ

මම මෙය කරන්නෙමි, නමුත් මට සෑම ආදාන පෙට්ටියක්ම වට කළ යුතුය, එබැවින් එය අමතර html ගොඩක් වේ.
නික්සොෆ්ට්

15

වැඩ කරන නිරූපණයක් මෙහි ඇත-

.floating-box {
    display:-moz-inline-stack;
    display: inline-block;

    width: fit-content; 
    height: fit-content;

    width: 150px;
    height: 75px;
    margin: 10px;
    border: 3px solid #73AD21;  
}
<h2>The Way is using inline-block</h2>

Supporting elements are also added in CSS.

<div>
   <div class="floating-box">Floating box</div>
   <div class="floating-box">Floating box</div>
   <div class="floating-box">Floating box</div>
   <div class="floating-box">Floating box</div>
   <div class="floating-box">Floating box</div>
   <div class="floating-box">Floating box</div>
   <div class="floating-box">Floating box</div>
   <div class="floating-box">Floating box</div>
</div>


13

මගේ CSS3 ෆ්ලෙක්ස් බොක්ස් විසඳුම රස දෙකකින් යුක්ත වේ: ඉහළින් ඇති තැනැත්තා පරතරයක් මෙන් හැසිරෙන අතර පතුලේ ඇති කොටස බෙදීමක් මෙන් හැසිරේ. ඔවුන්ගේ පන්ති පිළිවෙලින් "ඉහළ", "පහළ" සහ "පහළමාලය" වේ.

body {
    font-family: sans-serif;
}
.top {
    display: -webkit-inline-flex;
    display: inline-flex;
}
.top, .bottom {
    background-color: #3F3;
    border: 2px solid #FA6;
}
/* bottomwrapper will take the rest of the width */
.bottomwrapper {
    display: -webkit-flex;
    display: flex;
}
table {
    border-collapse: collapse;
}
table, th, td {
    width: 280px;
    border: 1px solid #666;
}
th {
    background-color: #282;
    color: #FFF;
}
td {
    color: #444;
}
th, td {
    padding: 0 4px 0 4px;
}
Is this
<div class="top">
	<table>
        <tr>
            <th>OS</th>
            <th>Version</th> 
        </tr>
        <tr>
            <td>OpenBSD</td>
            <td>5.7</td> 
        </tr>
        <tr>
            <td>Windows</td>
            <td>Please upgrade to 10!</td> 
        </tr>
    </table>
</div>
what you are looking for?
<br>
Or may be...
<div class="bottomwrapper">
    <div class="bottom">
    	<table>
            <tr>
                <th>OS</th>
                <th>Version</th> 
            </tr>
            <tr>
                <td>OpenBSD</td>
                <td>5.7</td> 
            </tr>
            <tr>
                <td>Windows</td>
                <td>Please upgrade to 10!</td> 
            </tr>
        </table>
    </div>
</div>
this is what you are looking for.


සඳහා කුඩෝස් display: inline-flex;. BTW මෙය ක්‍රෝම් 62, ෆයර්ෆොක්ස් 57 සහ සෆාරි 11 සඳහා උපසර්ගයක් නොමැතිව ක්‍රියා කරයි
හොරාසියෝ

12
<div class="parentDiv" style="display:inline-block">
    // HTML elements
</div>

මෙය මවුපියන්ගේ පළල විශාලතම මූලද්‍රව්‍ය පළලට සමාන කරයි.


තිරස් විශාලත්වය අවම කර ගැනීමට සිරස් ප්‍රමාණයට පමණක් මට මෙය යෙදිය හැකි ක්‍රමයක් තිබේද?
ගොබ්ලින්ස්

12

උත්සාහ කරන්න display: inline-block;. එය හරස් බ්‍රව්සරයට අනුකූල වීමට කරුණාකර පහත css කේතය භාවිතා කරන්න.

div {
  display: inline-block;
  display:-moz-inline-stack;
  zoom:1;
  *display:inline;
  border-style: solid;
  border-color: #0000ff;
}
<div>
  <table>
    <tr>
      <td>Column1</td>
      <td>Column2</td>
      <td>Column3</td>
    </tr>
  </table>
</div>


11

ෆයර්බග් සමඟ අවුල්සහගත ලෙස මම දේපල වටිනාකම සොයාගත්තා, -moz-fit-contentඑය OP ට අවශ්‍ය දේ හරියටම කරන අතර එය පහත පරිදි භාවිතා කළ හැකිය:

width: -moz-fit-content;

එය ක්‍රියාත්මක වන්නේ ෆයර්ෆොක්ස් වල පමණක් වුවද, ක්‍රෝම් වැනි වෙනත් බ්‍රව්සර් සඳහා සමාන කිසිවක් මට සොයාගත නොහැකි විය.


2017 ජනවාරි වන විට, IE (සියලුම සංස්කරණ, එජ් සහ ජංගම ඇතුළත්) සහ ඔපෙරා මිනි සඳහා සහය නොමැත fit-content. ෆයර්ෆොක්ස් සහය දක්වන්නේ පළල සඳහා පමණි. වෙනත් බ්‍රව්සර් එයට හොඳින් සහාය දක්වයි.
ගේවින්

11

ඔබට මෙම කේතය උත්සාහ කළ හැකිය. CSS කොටසේ කේතය අනුගමනය කරන්න.

div {
  display: inline-block;
  padding: 2vw;
  background-color: green;
}

table {
  width: 70vw;
  background-color: white;
}
<div>
    <table border="colapsed">
      <tr>
        <td>Apple</td>
        <td>Banana</td>
        <td>Strawberry</td>
      </tr>
      <tr>
        <td>Apple</td>
        <td>Banana</td>
        <td>Strawberry</td>
      </tr>
      <tr>
        <td>Apple</td>
        <td>Banana</td>
        <td>Strawberry</td>
      </tr>

    </table>
</div>


7

ටැගය තුළ ටැගයක් display: inline-blockඑක් කිරීමෙන් සහ CSS හැඩතල ගැන්වීම පිටත ටැගයේ සිට නව අභ්‍යන්තර ටැගයට ගෙන යාමෙන් මම සමාන ගැටළුවක් ( අයිතමය කේන්ද්‍රගත වූ නිසා භාවිතා කිරීමට අවශ්‍ය නොවූ තැන) විසඳා ඇත . ඔබට සුදුසු පිළිතුරක් නොවේ නම් මෙය වෙනත් විකල්ප අදහසක් ලෙස එතැනට විසි කිරීම.spandivdivspandisplay: inline block


7

divමූලද්රව්යයේ ඕනෑම ක්රමයක් අපට භාවිතා කළ හැකිය :

display: table;

හෝ,

display: inline-block; 

මම භාවිතා කිරීමට කැමැත්තෙමි display: table;, මන්ද එය හසුරුවන නිසා, සියලු අමතර අවකාශයන් තනිවම. අතර display: inline-blockවැඩිපුර ඉඩ හදන්න වෙනවා.


6
div{
  width:auto;
  height:auto;
}

Div හි පේළිගත (හෝ පේළි-බ්ලොක්) මූලද්‍රව්‍ය අඩංගු නම් මෙය ක්‍රියා නොකරනු ඇති අතර ඒවාට div ට වඩා වෙනස් අකුරු ප්‍රමාණය හා රේඛීය උස තිබේ.
quotesBro

5

ඔබ සතුව බහාලුම් කඩන රේඛා තිබේ නම්, පැය ගණනාවකට පසු හොඳ CSS විසඳුමක් සොයමින් කිසිවක් සොයාගත නොහැකි නම්, මම දැන් ඒ වෙනුවට jQuery භාවිතා කරමි:

$('button').click(function(){

  $('nav ul').each(function(){
    
    $parent = $(this).parent();
    
    $parent.width( $(this).width() );
    
  });
});
nav {
  display: inline-block;
  text-align: left; /* doesn't do anything, unlike some might guess */
}
ul {
  display: inline;
}

/* needed style */
ul {
  padding: 0;
}
body {
  width: 420px;
}

/* just style */
body {
  background: #ddd;
  margin: 1em auto;
}
button {
  display: block;
}
nav {
  background: #bbb;
  margin: 1rem auto;
  padding: 0.5rem;
}
li {
  display: inline-block;
  width: 40px;
  height: 20px;
  border: solid thin #777;
  margin: 4px;
  background: #999;
  text-align: center;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<button>fix</button>

<nav>
  <ul>
    <li>3</li>
    <li>.</li>
    <li>1</li>
    <li>4</li>
  </ul>
</nav>

<nav>
  <ul>
    <li>3</li>
    <li>.</li>
    <li>1</li>
    <li>4</li>
    <li>1</li>
    <li>5</li>
    <li>9</li>
    <li>2</li>
    <li>6</li>
    <li>5</li>
    <li>3</li>
    <li>5</li>
  </ul>
</nav>


මෙය ක්‍රෝම් හි මා සඳහා වන ස්නිපටයේ දෘශ්‍යමාන ලෙස කැඩී ඇත; නිවැරදි කිරීමේ බොත්තම දෙවන වරට ක්ලික් කිරීමෙන් පළමු වරට එය ක්ලික් කිරීමෙන් විවිධ ප්‍රති results ල ලැබේ.
මාර්ක් අමරි

Ark මාක්අමරි මගේ මැක් මත මම එය ක්‍රෝම්, සෆාරි සහ ෆයර්ෆොක්ස් මත අත්හදා බැලුවෙමි. සමහර විට එය කවුළු සහිත දෙයක් විය හැකිය ...
cregox

5

සංශෝධිත (ඔබට දරුවන් කිහිප දෙනෙකු සිටී නම් ක්‍රියා කරයි): ඔබට jQuery භාවිතා කළ හැකිය (JSFiddle සබැඳිය බලන්න)

var d= $('div');
var w;


d.children().each(function(){
 w = w + $(this).outerWidth();
 d.css('width', w + 'px')
});

JQuery ඇතුළත් කිරීමට අමතක නොකරන්න ...

JSfiddle බලන්න


ඔබේ කොට් div ාශයට දරුවන් කිහිප දෙනෙකු සිටී නම් මෙය කැඩී යයි; එය සරලවම පළමු දරුවාගේ පළලට බෙදයි .
මාර්ක් අමරි

Ark මාක්අමරි පළමුව, ඔබ එයට negative ණාත්මක ඡන්දයක් දීමට පෙර, කරුණාකර ප්‍රශ්නය හොඳින් කියවා, ඔවුන් එක් දරුවෙකු ඉල්ලා සිටියේය. බහුවිධ දරුවන් සමඟ එය කළ හැක්කේ කෙසේදැයි ඔබ සැබවින්ම කුතුහලයෙන් සිටී නම් සංශෝධිත පිළිතුර බලන්න.
බොන්ඩ්ස්මිත්

4

මම උත්සාහ කළ div.classname{display:table-cell;}අතර එය සාර්ථක විය!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.