පේළිගත / පේළිගත-මූලද්‍රව්‍ය අතර ඇති ඉඩ ඉවත් කරන්නේ කෙසේද?


1082

මෙම HTML සහ CSS ලබා දී ඇත:

span {
    display:inline-block;
    width:100px;
    background-color:palevioletred;
}
<p>
    <span> Foo </span>
    <span> Bar </span>
</p>

එහි ප්‍රති SP ලයක් ලෙස, SPAN මූලද්‍රව්‍ය අතර පික්සල් 4 ක පළල ඉඩක් ඇත.

නිරූපණය: http://jsfiddle.net/dGHFV/

මෙය සිදුවීමට හේතුව මට වැටහී ඇති අතර, HTML ප්‍රභව කේතයේ ඇති SPAN මූලද්‍රව්‍ය අතර ඇති සුදු අවකාශය ඉවත් කිරීමෙන් මට එම අවකාශයෙන් මිදිය හැකි බව මම දනිමි.

<p>
    <span> Foo </span><span> Bar </span>
</p>

කෙසේ වෙතත්, මම බලාපොරොත්තු වූයේ HTML ප්‍රභව කේතය අවුල් කිරීමට අවශ්‍ය නොවන CSS විසඳුමක් සඳහා ය.

ජාවාස්ක්‍රිප්ට් සමඟ මෙය විසඳන්නේ කෙසේදැයි මම දනිමි - බහාලුම් මූලද්‍රව්‍යයෙන් (ඡේදය) පෙළ නෝඩ් ඉවත් කිරීමෙන්, වැනි:

// jQuery
$('p').contents().filter(function() { return this.nodeType === 3; }).remove();

නිරූපණය: http://jsfiddle.net/dGHFV/1/

නමුත් මෙම ගැටළුව CSS සමඟ පමණක් විසඳිය හැකිද?


දැන් අදාළ සම්පූර්ණ විකල්ප කට්ටලයක් සඳහා මෙම ප්‍රශ්නයේ මගේ පිළිතුර බලන්න: stackoverflow.com/questions/14630061/…
ktamlyn


ආශ්‍රිත: stackoverflow.com/a/59357436/104380
vsync

Answers:


1020

මෙම පිළිතුර තරමක් ජනප්‍රිය වී ඇති බැවින් මම එය සැලකිය යුතු ලෙස නැවත ලියමි.

ඇසූ සත්‍ය ප්‍රශ්නය අමතක නොකරමු:

පේළිගත කිරීමේ මූලද්‍රව්‍ය අතර ඇති ඉඩ ඉවත් කරන්නේ කෙසේද ? මම බලාපොරොත්තු වූයේ HTML ප්‍රභව කේතය අවුල් කිරීමට අවශ්‍ය නොවන CSS විසඳුමක්. CSS සමඟ පමණක් මෙම ගැටළුව විසඳිය හැකිද?

එය වේ CSS මුහුණත් පමණක්, මෙම ගැටලුව විසඳීම සඳහා හැකි, නමුත් කිසිදු ඇත සම්පූර්ණයෙන්ම ශක්තිමත් CSS නිවැරදි කිරීම්.

මගේ මුලික පිළිතුරෙහි මා සතුව තිබූ විසඳුම වූයේ font-size: 0මව් අංගයට එකතු කිරීම සහ පසුව font-sizeදරුවන් පිළිබඳ සංවේදී ප්‍රකාශයක් කිරීමයි.

http://jsfiddle.net/thirtydot/dGHFV/1361/

මෙය සියලුම නවීන බ්‍රව්සර් වල මෑත සංස්කරණ වල ක්‍රියා කරයි. එය IE8 හි ක්‍රියාත්මක වේ. එය සෆාරි 5 හි ක්‍රියා නොකරයි , නමුත් එය සෆාරි 6 හි ක්‍රියාත්මක වේ. සෆාරි 5 මියගිය බ්‍රව්සරයකි ( 0.33%, 2015 අගෝස්තු ).

සාපේක්ෂ අකුරු ප්‍රමාණ සමඟ ඇති විය හැකි ගැටළු බොහොමයක් විසඳීමට සංකීර්ණ නොවේ.

කෙසේ වෙතත්, ඔබට නිශ්චිතවම CSS විසඳුමක් අවශ්‍ය නම් මෙය සාධාරණ විසඳුමක් වන අතර, ඔබේ HTML වෙනස් කිරීමට ඔබට නිදහස තිබේ නම් එය මා නිර්දේශ කරන්නේ නැත (අපගෙන් බොහෝ දෙනෙක් මෙන්).


සාධාරණ පළපුරුදු වෙබ් සංවර්ධකයෙකු ලෙස මම මෙම ගැටලුව විසඳීම සඳහා ඇත්ත වශයෙන්ම කරන්නේ මෙයයි:

<p>
    <span>Foo</span><span>Bar</span>
</p>

ඔව් ඒක නිවැරදියි. මම HTML හි ඇති අවකාශය පේළිගත-බ්ලොක් මූලද්‍රව්‍ය අතර ඉවත් කරමි.

එය පහසුයි. ඒක සරලයි. එය සෑම තැනකම ක්රියා කරයි. එය ප්‍රායෝගික විසඳුමයි.

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

නව HTML කිහිපයක් සමඟ සුදු අවකාශය ඉවත් කිරීම සඳහා විවිධ ක්‍රමවලින් ඉන්ද්‍රජාලික ගමනක් යමු:

<ul>
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
</ul>
  • මම සාමාන්‍යයෙන් කරන ආකාරයට ඔබට මෙය කළ හැකිය:

    <ul>
        <li>Item 1</li><li>Item 2</li><li>Item 3</li>
    </ul>

    http://jsfiddle.net/thirtydot/dGHFV/1362/

  • නැතහොත්, මෙය:

    <ul>
        <li>Item 1</li
        ><li>Item 2</li
        ><li>Item 3</li>
    </ul>
  • නැතහොත්, අදහස් භාවිතා කරන්න:

    <ul>
        <li>Item 1</li><!--
        --><li>Item 2</li><!--
        --><li>Item 3</li>
    </ul>
  • නැතහොත්, ඔබ PHP හෝ ඊට සමාන භාවිතා කරන්නේ නම්:

    <ul>
        <li>Item 1</li><?
        ?><li>Item 2</li><?
        ?><li>Item 3</li>
    </ul>
  • නැතහොත්, ඔබට සමහර සංවෘත ටැග් සම්පූර්ණයෙන්ම මඟ හැරිය හැක (සියලුම බ්‍රව්සර් මේ සමඟ හොඳයි):

    <ul>
        <li>Item 1
        <li>Item 2
        <li>Item 3
    </ul>

දැන් මම ගොස් ඔබව තිගැස්සී "සුදු අවකාශය ඉවත් කිරීමට විවිධ ක්‍රම දහසක්, තිස් තිහකින්", ඔබට සියල්ල අමතක වී ඇතැයි සිතිය font-size: 0හැකිය.


විකල්පයක් ලෙස, ඔබ මීට පෙර පේළිගත-බ්ලොක් භාවිතා කර ඇති බොහෝ පිරිසැලසුම් සාක්ෂාත් කර ගැනීමට නම්යශීලී කොටුව භාවිතා කළ හැකිය : https://css-tricks.com/snippets/css/a-guide-to-flexbox/


8
එය FF3.6, IE9RC, O11, Ch9 හි ක්‍රියා කරයි. කෙසේ වෙතත්, සෆාරි 5 හි තවමත් 1px පුළුල් පරතරයක් පවතී:(
Šime Vidas

8
@thirtydot ඔබ එම ප්රකාශය පරීක්ෂා හැකිද මෙම පිළිතුර . මෙම font-size:0උපක්‍රමය එතරම් හොඳ අදහසක් නොවිය හැකිය ...
Šime Vidas

25
පෝස්ටරය CSS විසඳුමක් සොයන බව මම දනිමි, නමුත් මෙම විසඳුම - වඩාත්ම ඡන්දය දුන් (මා මෙය ලියන විට ඡන්ද 30 ට එදිරිව 5) - ශක්තිමත් අතුරු ආබාධ ඇති අතර හරස් බ්‍රව්සරයක් පවා ක්‍රියා නොකරයි. මෙම අවස්ථාවේදී ඔබේ HTML හි ඇති ගැටළු සහගත සුදු අවකාශය ඉවත් කිරීම වඩාත් ප්‍රායෝගිකයි.
ස්ටෙප් තිරියන්

11
මෙම විසඳුම ක්‍රියාත්මක වන්නේ ඔබ ඔබේ බහාලුම් ප්‍රමාණ සඳහා ඊඑම් සමඟ වැඩ නොකරන්නේ නම් පමණි
meo

6
මෙය ළමා අකුරු සාපේක්ෂ අකුරු ප්‍රමාණවලින් බිඳ දමයි.
ඩැනියෙල්

157

CSS3 අනුකූල බ්‍රව්සර් සඳහා ඇත white-space-collapsing:discard

බලන්න: http://www.w3.org/TR/2010/WD-css3-text-20101005/#white-space-collapsing


ඔබට trim-innerවඩා භාවිතා කිරීමට අවශ්‍ය discardනැද්ද?
spb

49
මෙය පෙළ 3 මට්ටමෙන් ඉවත් කරන ලදි, නමුත් පෙළ 4 මට්ටමේ ඇත . එය දැනටමත් 2016 වන අතර තවමත් සහාය නැත. text-space-collapse:discard
ඔරියෝල්

1
RMrLister: වෙනත් විසඳුම් සෑම අවස්ථාවකම ක්‍රියාත්මක නොවේ. නිදසුනක් ලෙස <p>A long text...</p>, පෙළ අන්තර්ගතයට වඩා වෙනම රේඛාවල ටැග් විවෘත කිරීම සහ වසා දැමීම සිදුකරන ස්ථානයක් ඉවත් කරන කිසිදු විසඳුමක් ගැන මම නොදනිමි . එය මගේ HTML ලිපිගොනු පිළිවෙලට හා කියවිය හැකි ලෙස තබා ගැනීමට මම නිතරම කරන දෙයකි.
රොබට් කුස්නියර්


RMrLister Floating මගින් පසුපස ඇති අවකාශය සැබවින්ම ඉවත් කරයි, නමුත් බරපතල අතුරු ආබාධ ඇත - බහාලුම් පිරිසැලසුමෙහි මූලද්‍රව්‍යයේ පිහිටීම මුළුමනින්ම වෙනස් කරයි. මූලද්‍රව්‍යයක් පාවෙන විට මගේ පිරිසැලසුම විනාශ වන විට (එය සාමාන්‍යයෙන්) මම එය කරන්නේ කෙසේද?
රොබට් කුස්නියර්

95

සංස්කරණය කරන්න:

අද අපි භාවිතා කළ යුත්තේ ෆ්ලෙක්ස්බොක්ස් පමණි .


පැරණි පිළිතුර:

හරි, මම පිළිතුරු font-size: 0;සහ not implemented CSS3 featureපිළිතුරු යන දෙකම ඉහළ නංවා ඇතත් , උත්සාහ කිරීමෙන් පසුව මම දැනගත්තා ඒ කිසිවක් සැබෑ විසඳුමක් නොවන බව .

ඇත්ත වශයෙන්ම, ශක්තිමත් අතුරු ආබාධ නොමැතිව එක් ක්‍රියාමාර්ගයක්වත් නොමැත.

එවිට මම හිස් තැන් ඉවත් කිරීමට තීරණය (මෙම පිළිතුරු මෙම තර්කය ගැන) අතර inline-blockමගේ සිට divs HTMLමූලාශ්රය ( JSPමෙම හැරෙමින්):

<div class="inlineBlock">
    I'm an inline-block div
</div>
<div class="inlineBlock">
    I'm an inline-block div
</div>

මේකට

<div class="inlineBlock">
    I'm an inline-block div
</div><div class="inlineBlock">
    I'm an inline-block div
</div>

එය කැතයි, නමුත් වැඩ කරනවා.

එහෙත්, විනාඩියක් ඉන්න ... මම තුල මගේ divs ජනනය කරනවා නම් කුමක් Taglibs loops( Struts2, JSTL, ආදිය ...)?

උදාහරණයක් වශයෙන්:

<s:iterator begin="0" end="6" status="ctrDay">
    <br/>
    <s:iterator begin="0" end="23" status="ctrHour">
        <s:push value="%{days[#ctrDay.index].hours[#ctrHour.index]}">
            <div class="inlineBlock>
                I'm an inline-block div in a matrix 
                (Do something here with the pushed object...)
           </div>
       </s:push>
    </s:iterator>
</s:iterator>

ඒ සියල්ලම පෙළගැස්වීම කිසිසේත් සිතිය නොහැකිය

<s:iterator begin="0" end="6" status="ctrDay">
    <br/>
    <s:iterator begin="0" end="23" status="ctrHour"><s:push value="%{days[#ctrDay.index].hours[#ctrHour.index]}"><div class="inlineBlock>
                I'm an inline-block div in a matrix             
                (Do something here with the pushed object...)
           </div></s:push></s:iterator>
</s:iterator>

එය කියවිය නොහැකි, තේරුම් ගැනීමට අපහසු සහ තේරුම් ගැනීමට අපහසු ය ...

මා සොයාගත් විසඳුම:

එක් කොටසක අවසානය ඊළඟ එක ආරම්භයට සම්බන්ධ කිරීමට HTML අදහස් භාවිතා කරන්න!

<s:iterator begin="0" end="6" status="ctrDay">
   <br/>
   <s:iterator begin="0" end="23" status="ctrHour"><!--
    --><s:push value="%{days[#ctrDay.index].hours[#ctrHour.index]}"><!--
        --><div class="inlineBlock>
                I'm an inline-block div in a matrix             
                (Do something here with the pushed object...)
           </div><!--
    --></s:push><!--
--></s:iterator>
</s:iterator>

මේ ආකාරයෙන් ඔබට කියවිය හැකි සහ නිවැරදිව ඇතුළත් කළ කේතයක් ඇත.

ධනාත්මක අතුරු ආබාධයක් ලෙස, HTML sourceහිස් අදහස් දැක්වීමෙන් ආසාදනය වුවද, නිවැරදිව ඉන්ඩෙන්ට් කරනු ඇත;

පළමු උදාහරණය බලමු. මගේ නිහතමානී මතය අනුව, මෙය:

    <div class="inlineBlock">
        I'm an inline-block div
    </div><!--
 --><div class="inlineBlock">
        I'm an inline-block div
    </div>

මෙයට වඩා හොඳයි:

    <div class="inlineBlock">
         I'm an inline-block div
    </div><div class="inlineBlock">
         I'm an inline-block div
    </div>

1
මෙය ඔබේ සංස්කාරකයේ කේත නැමීමේ ක්‍රියාකාරිත්වය ද බිඳ දැමිය හැකි බව සලකන්න.
jknotek

44

සුදු අවකාශයක් නොමැති බවට මූලද්‍රව්‍ය අතර අදහස් එක් කරන්න . අකුරු ප්‍රමාණය බිංදුවට නැවත සකස් කර එය නැවත සැකසීමට වඩා මට පහසුය.

<div>
    Element 1
</div><!--
--><div>
    Element 2
</div>

මෙය 2020 දී අප විසින් භාවිතා නොකළ යුතු අනවසරයකි: ඒ වෙනුවට නම්‍යශීලි කොටුව
tonygatta

පිළිතුර ලියා ඇත්තේ 2013 දී ය. නම්‍යශීලි කොටුව මෙය ප්‍රශ්නයක් සඳහා පිළිතුරක් නොවන අතර මෙය ද වැඩ කරයි: stackoverflow.com/a/37512227/1019850
ඩේවිඩ්

43

අවකාශය තුරන් කිරීමේ සියලු ශිල්පීය ක්‍රම display:inline-blockනපුරු හක්ක ...

Flexbox භාවිතා කරන්න

එය නියමයි, මේ සියලු පේළිගත-බ්ලොක් පිරිසැලසුම bs විසඳන අතර 2017 වන විට 98% බ්‍රව්සර් සහාය ඇත (ඔබ පැරණි IE ගැන සැලකිලිමත් නොවන්නේ නම්).


1
අශෝභන හැක් විය හැකිය, නමුත් අකුරු ප්‍රමාණය: 0 බ්‍රව්සර් වලින් 100% ක්ම ක්‍රියාත්මක වන අතර දර්ශනය යෙදීම: පේළිගත කිරීමේ නම්‍යතාවය තවමත් අමතර සුදු අවකාශයෙන් මිදෙන්නේ නැත, එයට සහාය දෙන බ්‍රව්සරයක පවා!
පැට්රික්

at පැට්‍රික් ෆ්ලෙක්ස්බොක්ස් නිසැකවම ගැටලුව විසඳයි, ඔබ එය වැරදියි. inline-flex යනු නම්‍යශීලී අයිතම පේළිගත කිරීම සඳහා නොවේ - එය අදාළ වන්නේ බහාලුම්වලට පමණි. Stackoverflow.com/a/27459133/165673
යරින්

7
"font-size: 0" 100% බ්‍රව්සර් මත ක්‍රියා නොකරයි . (අවම අකුරු ප්‍රමාණ බ්‍රව්සර සැකසුම්). මෙම පිළිතුර ඇත්තෙන්ම හොඳයි.
ViliusL

39

display: flex;මව් අංගයට එකතු කරන්න . උපසර්ගයක් සමඟ විසඳුම මෙන්න:

සරල කළ අනුවාදය

p {
  display: flex;
}

span {
  width: 100px;
  background: tomato;
  font-size: 30px;
  color: white;
  text-align: center;
}
<p>
  <span> Foo </span>
  <span> Bar </span>
</p>


උපසර්ගය සමඟ නිවැරදි කරන්න

p {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}
span {
  float: left;
  display: inline-block;
  width: 100px;
  background: blue;
  font-size: 30px;
  color: white;
  text-align: center;
}
<p>
  <span> Foo </span>
  <span> Bar </span>
</p>


1
ඒක නියම පිළිතුරක්! කෙසේ වෙතත්, මම සිතන්නේ සරල කළ අනුවාදය ඉහළින් තැබීම පිළිවෙලක් වනු ඇති අතර එමඟින් පා er කයා දකින පළමු දෙය එයයි. නැතහොත් සරල නොකළ අනුවාදය ඉවත් කරන්න.
ස්ටෙෆ්නොච්

1
St ස්ටෙෆ්නොච් සිදු විය your ඔබගේ වටිනා යෝජනාවට ස්තූතියි :-)
මෝ.

පරතරයේ අන්තර්ගතය එක් වචනයකට වඩා දිගු වන විට මට අනපේක්ෂිත හැසිරීමක් ලැබේ - උදාහරණයක් ලෙස. පහත දැක්වෙන්නේ 'සාමාන්‍ය' ගලා යන පෙළ රේඛා නොව දිගු තීරුවල පරතරයයි : <div class="container"><span>Lorem ipsum dolor sit amet, consectetur adipiscing elit</span><span>Donec mollis nulla vel dignissim varius, aliquam tempor elit eget ante viverra ultrices</span></div>සටහන: මම <p>කන්ටේනරයක් වෙනුවට ආදේශ කර ඇත div - jsFiddle සබැඳිය මෙහි ඇත
user1063287

30

අදාළ දේ සම්බන්ධයෙන් මා දුන් පිළිතුර මෙයයි: දර්ශනය: පේළිගත කිරීම - එම අවකාශය කුමක්ද?

ඇත්ත වශයෙන්ම සරල හා අර්ථාන්විත යන දෙවර්ගයටම අවකාශය ඉවත් කිරීමට ඇත්තෙන්ම සරල ක්‍රමයක් තිබේ. එය ශුන්‍ය පළල සහිත අභිරුචි අකුරු ලෙස හැඳින්වෙන අතර, එය ඉතා කුඩා අකුරු භාවිතා කරමින් අකුරු මට්ටමින් සුදු අවකාශය (පේළිගත රේඛා මත ඇති විට පේළිගත කිරීම සඳහා බ්‍රව්සරය විසින් එකතු කරනු ලැබේ). ඔබ අකුරු ප්‍රකාශයට පත් කළ පසු, ඔබ font-familyකන්ටේනරය මත ඇති වෙනස නැවත ළමයින්ට නැවත ලබා දෙන්න, සහ වොයිලා. මෙවැනි:

@font-face{ 
    font-family: 'NoSpace';
    src: url('../Fonts/zerowidthspaces.eot');
    src: url('../Fonts/zerowidthspaces.eot?#iefix') format('embedded-opentype'),
         url('../Fonts/zerowidthspaces.woff') format('woff'),
         url('../Fonts/zerowidthspaces.ttf') format('truetype'),
         url('../Fonts/zerowidthspaces.svg#NoSpace') format('svg');
}

body {
    font-face: 'OpenSans', sans-serif;
}

.inline-container {
    font-face: 'NoSpace';
}

.inline-container > * {
    display: inline-block;
    font-face: 'OpenSans', sans-serif;
}

රසයට ගැලපේ. මෙන්න මම දැන් ෆොන්ට්-ෆෝර්ජ් වලින් පිසින ලද ෆොන්ට්ස් ඩවුන්ලෝඩ් කර ෆොන්ට්ස්ක්වීරල් වෙබ්ෆොන්ට් ජනක යන්ත්‍රය සමඟ පරිවර්තනය කර ඇත. විනාඩි 5 ක් මට ගත්තා. CSS @font-faceප්‍රකාශය ඇතුළත් කර ඇත: zip ශුන්‍ය පළල අවකාශ අකුරු . එය ගූගල් ඩ්‍රයිව් හි ඇති බැවින් එය ඔබේ පරිගණකයට සුරැකීමට ගොනුව> බාගන්න ක්ලික් කරන්න. ඔබ ප්‍රකාශය ඔබේ ප්‍රධාන CSS ගොනුවට පිටපත් කරන්නේ නම් ඔබට අකුරු මාර්ග වෙනස් කිරීමට අවශ්‍ය වනු ඇත.


1
ඔබ මෙය CSS උපක්‍රම වල පළ කරන බව මම දුටුවෙමි , මට මෙය හොඳ පිළිතුරකි. එය සැහැල්ලු, ක්‍රියාත්මක කිරීමට පහසු සහ හරස් බ්‍රව්සරයකි (මගේ පරීක්ෂණ පෙන්වා ඇති පරිදි). flex-wrapඅවම වශයෙන් v28 ( srsly? ) තෙක් ෆයර්ෆොක්ස් සහාය නොදක්වන බව මා තේරුම් ගන්නා තෙක් මම සම්පූර්ණයෙන්ම නම්‍යශීලි පෙට්ටියක් සමඟ ගියෙමි , නමුත් මෙය එතෙක් පරිපූර්ණ පසුබෑමකි .
අවිනිශ්චිත

16
දිගු කලක් තිස්සේ මා දුටු අධික ලෙස මරණයට පත්වීමේ නරකම අවස්ථාව මෙයයි. ඉඩක් ඉවත් කිරීම සඳහා සම්පූර්ණ අකුරු බාගන්න? ගීස්.
ලිස්ටර් මහතා

3
එවැනි අකුරු ගොනුවක් ඉතා කුඩා එකක් බව ඔබට වැටහෙනවාද? එය ඇතුළත කිසිදු ග්ලයිෆොසයක් නොගැලපේ. කෙසේ වෙතත් එය පදනම් 64 කේතනය කර ඇති බවට මම තර්ක කරමි, එබැවින් අපි ඉල්ලීම ද ඉවත් කරමු.
රොබට් කොරිට්නික්

මෙය අයිකන අකුරු වලට සමාන මාරාන්තික දෝෂයක් ඇත, එනම් වෙබ් අකුරු අවහිර කර ඇති විට (උදා: කලාප පළල හෝ ආරක්ෂක හේතූන් මත) හෝ අභිරුචි අකුරු මගින් උඩින් ලියන විට (උදා: ඩිස්ලෙක්සියා වැනි සෞඛ්‍ය හේතූන් මත) එය ක්‍රියා නොකරනු ඇත.
tomasz86

22

CSS පෙළ මොඩියුල මට්ටම 3 මත පදනම් වූ තවත් විකල්ප දෙකක් (ඒ වෙනුවට white-space-collapsing:discardපිරිවිතර කෙටුම්පතෙන් ඉවත් කර ඇත):

  • word-spacing: -100%;

න්‍යාය අනුව, එය අවශ්‍ය දේ හරියටම කළ යුතුය - අවකාශයේ අක්‍ෂර පළලෙන් 100% කින් එනම් වචන අතර සුදු අවකාශය කෙටි කරන්න, එනම් බිංදුවට. අවාසනාවකට මෙන්, කොතැනකවත් වැඩ නොකරන බව පෙනේ, මෙම අංගය 'අවදානමක' සලකුණු කර ඇත (එය පිරිවිතරයෙන් ද ඉවත් කළ හැකිය).

  • word-spacing: -1ch;

එය '0' ඉලක්කම් පළල අනුව අන්තර් වචන අවකාශය කෙටි කරයි. මොනොස්පේස් අකුරු වර්ගයක එය අභ්‍යවකාශ අක්‍ෂරයේ පළලට හරියටම සමාන විය යුතුය (සහ වෙනත් ඕනෑම අක්‍ෂරයක් ද). මෙය ෆයර්ෆොක්ස් 10+, ක්‍රෝම් 27+, සහ ඉන්ටර්නෙට් එක්ස්ප්ලෝරර් 9+ හි ක්‍රියා කරයි.

ෆෙඩෙල්


වචන පරතරය සඳහා +1, -0.5ch නිවැරදි අගය වුවද, අවකාශයන් නොමැතිව -1ch පෙළ කියවිය නොහැකි වුවද, -0.5ch අකුරු ප්‍රමාණය මෙන් හැසිරේ: 0; පෙළ මූලද්‍රව්‍යවල පැහැදිලි කට්ටල ප්‍රමාණය සමඟ. :)
ඩෙනිස් 98

6
@ Dennis98, -1ch ඔවුන්ගේ සියලු චරිත ඇතුළු එම පළල, වී සිටින නිසා, monospace අකුරු (කුරියර් නව වැනි) සඳහා පමණක් ක්රියා ' 'හා '0'. මොනොස්පේස් නොවන අකුරු වල පළල ' 'සහ '0'අක්ෂර අතර සුදුසු මැජික් අනුපාතයක් නොමැත , එබැවින් chඑය එතරම් ප්‍රයෝජනවත් නොවේ.
ඉල්යා ස්ට්‍රෙල්ට්සින්

ඒ වෙනුවට word-spacing, මගේ පිළිතුරෙහිletter-spacing පෙන්වා ඇති පරිදි අපට අත්තනෝමතික විශාල negative

21

අවාසනාවකට මෙන්, එය 2019 වන අතර white-space-collapseතවමත් ක්‍රියාත්මක නොවේ.

මේ අතර, මව් අංගයක් දෙන්න font-size: 0;සහ සකස් font-sizeදරුවන් මත. මෙය කළ යුත්තේ උපක්‍රමයයි


16

පැරණි බ්‍රව්සර් සඳහා නම්යශීලී කොටුව භාවිතා කර පසුබෑමක් කරන්න (ඉහත යෝජනා වලින්):

ul {
    display: -webkit-box;
    display: -moz-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
}

13

සරල:

item {
  display: inline-block;
  margin-right: -0.25em;
}

මව් මූලද්රව්යය ස්පර්ශ කිරීමට අවශ්ය නැත.

මෙහි ඇති එකම කොන්දේසිය: අයිතමයේ අකුරු ප්‍රමාණය නිර්වචනය නොකළ යුතුය (දෙමව්පියන්ගේ අකුරු ප්‍රමාණයට සමාන විය යුතුය).

0.25em පෙරනිමිය වේ word-spacing

W3 පාසල් - වචන පරතරය සහිත දේපල


0.25em යනු "පෙරනිමි වචන පරතරය" නොවේ, එය ටයිම්ස් නිව් රෝමන් අකුරු වල සුදු අවකාශයේ අක්‍ෂරයේ පළල වන අතර එය සමහර ජනප්‍රිය මෙහෙයුම් පද්ධතිවල පෙරනිමි අකුරු වේ. හෙල්වෙටිකා වැනි වෙනත් ජනප්‍රිය අකුරු බොහෝ විට පුළුල් අවකාශයේ චරිතයක් ඇති බැවින් ඒවායින් 0.25 ක් පමණක් ඉවත් කිරීම හිඩැස් ඉවත් කිරීමට ප්‍රමාණවත් නොවේ.
ඉල්යා ස්ට්‍රෙල්ට්සින්

12

අකුරු ප්‍රමාණය: 0; කළමනාකරණය කිරීමට ටිකක් උපක්‍රමශීලී විය හැකිය ...

මම හිතන්නේ පහත දැක්වෙන යුවළ රේඛා වෙනත් ක්‍රමවලට වඩා හොඳ සහ නැවත භාවිතා කළ හැකි සහ කාලය ඉතිරි කර ගත හැකි ය. මම මෙය පෞද්ගලිකව භාවිතා කරමි:

.inline-block-wrapper>.inline-block-wrapper,
.inline-block-wrapper{letter-spacing: -4px;}
.inline-block-wrapper>*{letter-spacing: 0;display: inline-block;}

/* OR better shorter name...*/
.items>.items,
.items{letter-spacing: -4px;}
.items>*{letter-spacing: 0;display: inline-block;}

එවිට ඔබට එය පහත පරිදි භාවිතා කළ හැකිය ...

<ul class="items">
   <li>Item 1</li>
   <li>Item 2</li>
   <li>Item 3</li>
</ul>

මා දන්නා තරමින් (මම වැරදියි) නමුත් සියලුම බ්‍රව්සර් මෙම ක්‍රමයට සහය දක්වයි.

පැහැදිලි කිරීම :

ඔබ වැඩ කිරීමට අපේක්‍ෂා කරන ආකාරයටම මෙය ක්‍රියාත්මක වේ (සමහර විට -3px වඩා හොඳ විය හැකිය).

  • ඔබ කේතය පිටපත් කර අලවන්න (වරක්)
  • ඉන්පසු ඔබේ html එකෙහි class="items"එක් එක් පේළියේ බ්ලොක් වල මවුපියන් භාවිතා කරන්න .

ඔබේ නව පේළි වාරණ සඳහා නැවත CSS වෙත ගොස් තවත් CSS රීතියක් එක් කිරීමේ අවශ්‍යතාවයක් ඔබට නැත.

ගැටළු දෙකක් එකවර විසඳීම.

ද සටහන් >* / සියලු දරුවන් පේළිගත-වාරණ විය යුතු බව (විශාල ලකුණ) මෙම මාධ්යයක්.

http://jsfiddle.net/fD5u3/

සටහන: එතුමියකුට ළමා ඔතා ඇති විට අකුරු පරතරය උරුම කර ගැනීම සඳහා මම වෙනස් කර ඇත.


වෙනුවට -4pxසඳහා letter-spacingවන විශාල අකුරු-ප්රමාණ සඳහා නොවේ ප්රමාණවත් විය හැක මෙම පත්වීමට විජේතුංග බලන්න: උදා: අපි මෙන් විශාල වටිනාකමක් භාවිතා කළ හැකි මාගේ පශ්චාත්
S.Serpooshan

12

තාක්ෂණික වශයෙන් ප්‍රශ්නයට පිළිතුරක් නොවුවද: "පේළිගත-අවහිර මූලද්‍රව්‍ය අතර ඇති ඉඩ ඉවත් කරන්නේ කෙසේද?"

ඔබට ෆ්ලෙක්ස්බොක්ස් විසඳුම උත්සාහ කර පහත කේතය යොදන්න, එවිට අවකාශය ඉවත් වේ.

p {
   display: flex;
   flex-direction: row;
}

ඔබට මෙම සබැඳියෙන් වැඩි විස්තර දැනගත හැකිය: https://css-tricks.com/snippets/css/a-guide-to-flexbox/


අතර තාක්ෂණික "මම පේළිගත-වාරණ සමග මෙය කළ හැකි" වෙත පිළිතුරක් නෑ මේ අලංකාර විසඳුමක් මට පෙනේ ...
ලූකස්

10

ඔබට පරතරයකින් තොරව නිල් පැහැති ස්පා දෙකක් සෑදීමට හෝ වෙනත් සුදු අවකාශයක් හැසිරවීමට අවශ්‍ය දැයි මට විශ්වාස නැත, නමුත් ඔබට පරතරය ඉවත් කිරීමට අවශ්‍ය නම්:

span {
    display: inline-block;
    width: 100px;
    background: blue;
    font-size: 30px;
    color: white;
    text-align: center;

    float: left;
}

සහ කර ඇත.


9

සාමාන්‍යයෙන් අපි මේ වගේ මූලද්‍රව්‍ය විවිධ රේඛාවලින් භාවිතා කරනවා, නමුත් එසේ නම් display:inline-block එකම පේළියේ ටැග් භාවිතා කළහොත් අවකාශය ඉවත් වේ, නමුත් වෙනත් පේළියක එසේ නොවේ.

වෙනත් පේළියක ටැග් සහිත උදාහරණයක්:

p span {
  display: inline-block;
  background: red;
}
<p>
  <span> Foo </span>
  <span> Bar </span>
</p>

එකම පේළියේ ටැග් සමඟ උදාහරණය

p span {
  display: inline-block;
  background: red;
}
<p>
  <span> Foo </span><span> Bar </span>
</p>


තවත් කාර්යක්ෂම ක්‍රමයක් වන්නේ CSS රැකියාවකි, එය font-size:0මව් මූලද්‍රව්‍යයට භාවිතා කරන අතර font-sizeඔබට අවශ්‍ය ප්‍රමාණයට ළමා අංගයකට ලබා දේ.

p {
  font-size: 0;
}
p span {
  display: inline-block;
  background: red;
  font-size: 14px;
}
<p>
  <span> Foo </span>
  <span> Bar </span>
</p>

සමස්ත ක්‍රමවේදය අනුව ඉහත ක්‍රම කොතැනකවත් ක්‍රියා නොකරනු ඇත, නමුත් අවසාන ක්‍රමය මෙම තත්වය සඳහා මෝඩ විසඳුමක් වන අතර ඕනෑම තැනක භාවිතා කළ හැකිය.


මෙම ක්‍රමයේ අවාසියක් නම්, ළමා මූලද්‍රව්‍යවල එය යථා තත්ත්වයට පත් කිරීම සඳහා පෙරනිමි අකුරු ප්‍රමාණය (උදා. 14px) දැනගෙන නැවත නැවත කිරීම අවශ්‍ය වේ!
එස්.සර්පූෂාන්

8

මට මේ font-size:0;මොහොතේ මෙම ගැටලුව ඇති අතර ඉන්ටර්නෙට් එක්ස්ප්ලෝරර් 7 හි ගැටලුව පවතින්නේ ඉන්ටර්නෙට් එක්ස්ප්ලෝරර් "අකුරු ප්‍රමාණය 0?!?! ඩබ්ලිව්ටීඑෆ් ඔබ පිස්සු මිනිසෙක්ද?" - ඉතින්, මගේ නඩුවේදී මම එරික් මේයර්ගේ CSS යළි පිහිටුවීම සහ font-size:0.01em;ඉන්ටර්නෙට් එක්ස්ප්ලෝරර් 7 සිට ෆයර්ෆොක්ස් 9 දක්වා පික්සල් 1 ක වෙනසක් ඇත, එබැවින් මෙය විසඳුමක් විය හැකි යැයි මම සිතමි.


7

p {
  display: flex;
}
span {
  float: left;
  display: inline-block;
  width: 100px;
  background: red;
  font-size: 30px;
  color: white;
}
<p>
  <span> hello </span>
  <span> world </span>
</p>


1
මෙම කේත ස්නිපටය මඟින් ප්‍රශ්නය විසඳිය හැකි අතර, පැහැදිලි කිරීමක් ඇතුළුව ඔබේ තනතුරේ ගුණාත්මකභාවය වැඩි දියුණු කිරීමට උපකාරී වේ. අනාගතයේ දී ඔබ පා readers කයන් සඳහා වන ප්‍රශ්නයට පිළිතුරු සපයන බව මතක තබා ගන්න, ඔබේ කේත යෝජනාවට හේතු එම පුද්ගලයින් නොදැන සිටිය හැකිය. කරුණාකර ඔබේ කේතය පැහැදිලි කිරීමේ අදහස් දැක්වීමට උත්සාහ නොකරන්න, මෙය කේතයේ කියවීමේ හැකියාව සහ පැහැදිලි කිරීම් අඩු කරයි!
අෂිෂ් අහුජා

මම හිතන්නේ ඒ floatහා display:inline-blockසඳහා spanනම් මෙම නඩුව සඳහා fallbacks කිරීමට අදහසක් විය ගේ flexසහාය නොදක්වයි, නමුත් floatඵලදායී බලපෑම ඉවත ඇත inline-blockඅග අතිරික්ත පෙනේ නම්,.
ඉල්යා ස්ට්‍රෙල්ට්සින්

6

මෑතකදී මා හා වෙනුවට මව් සැකසීම මෙම ගැටෙමින් තියෙනවා font-size:0මම මව් රුවනයකි තබමින් ස්ථාවර ප්රතිඵල ලබා හිටියේ සාධාරණ අගය කිරීමට දරුවා ආපසු සකසා පසුව, letter-spacing:-.25emකිරීමට පසුව දරුවා ආපසු letter-spacing:normal.

විකල්ප ත්‍රෙඩ් එකක මම දැක්කා font-size:0සෑම විටම පරමාදර්ශී නොවන විවරණකරුවෙකුගේ බ්‍රව්සර්වල අවම අකුරු ප්‍රමාණයන් පාලනය කළ හැකි අතර අකුරු ප්‍රමාණය ශුන්‍යයට සැකසීමේ හැකියාව සම්පූර්ණයෙන්ම ප්‍රතික්ෂේප කරයි.

නිශ්චිතව දක්වා ඇති අකුරු ප්‍රමාණය 100%, 15pt හෝ 36px ද යන්න නොසලකා ems භාවිතා කරන බව පෙනේ.

http://cdpn.io/dKIjo


ඇන්ඩ්‍රොයිඩ් සඳහා ෆයර්ෆොක්ස් හි, පෙට්ටි අතර 1px ඉඩක් මට පෙනේ.
අයිම් විදාස්

5

IE 6/7 පවා සියලුම බ්‍රව්සර් මගින් සහාය දක්වන මේ සඳහා ඉතා සරල / පැරණි ක්‍රමයක් ඇතැයි මම සිතමි. අපට හුදෙක් letter-spacingදෙමව්පියන් තුළ විශාල negative ණාත්මක අගයකට සැකසිය හැකි අතර පසුව එය normalළමා අංග වෙත නැවත සැකසිය හැකිය :

body { font-size: 24px }
span { border: 1px solid #b0b0c0; } /* show borders to see spacing */

.no-spacing { letter-spacing: -1em; } /* could be a large negative value */
.no-spacing > * { letter-spacing: normal; } /* => back to normal spacing */
<p style="color:red">Wrong (default spacing):</p>

<div class="">
  <span>Item-1</span>
  <span>Item-2</span>
  <span>Item-3</span>
</div>

<hr/>

<p style="color:green">Correct (no-spacing):</p>

<div class="no-spacing">
  <span>Item-1</span>
  <span>Item-2</span>
  <span>Item-3</span>
</div>


මෙහි සිදුවන එකම දෙය ඔබ letter-spacing:normalසියලු ළමා අංග තුළ සැකසිය යුතුය .
ගෞරව් අගර්වාල්

Ara ගෞරව් අගර්වාල් නමුත් letter-spacingඑය 99.99% වේ normal. අකුරු ප්‍රමාණයට එතරම් ස්ථාවර අගයක් නොමැති අතර එය නිර්මාණය මත බෙහෙවින් රඳා පවතී. එය අකුරු-පවුල සහ වෙනත් දේ මත පදනම් වූ කුඩා අගයක් හෝ විශාල වටිනාකමක් විය හැකිය ... විශේෂ වටිනාකමක් (0 / සාමාන්‍ය හැර) බැලීමට / භාවිතා කිරීමට මගේ ජීවිතයේ කිසි විටෙකත් මට මතක නැත letter-spacing, එබැවින් එය ආරක්ෂිත සහ වඩා හොඳ තේරීම
එස්.සර්පූෂාන්

මම මේකට එකඟ නොවෙමි ... අකුරු පරතරය සියලු මූලද්‍රව්‍ය සමඟ සාමාන්‍ය පරිදි භාවිතා කිරීම සහ අකුරු ප්‍රමාණය භාවිතා කිරීම (අවශ්‍ය නම්) ඔබ අකුරු ප්‍රමාණය වෙනස් කළ යුතු ද්විත්ව කේත ලිවීම තරම් ප්‍රයෝජනවත් නොවේ. අකුරු ප්‍රමාණය භාවිතා කිරීම ද්විත්ව කේතයක් නොවන අතර සම්මත ප්‍රමාණය සහ වෙනත් අභිරුචි ප්‍රමාණයක් භාවිතා කළ හැකිය. ගූගල් කිරීමට මම ඔබට යෝජනා කරමි, අකුරු ප්‍රමාණය භාවිතා කිරීම පරීක්ෂා කිරීම මේ දිනවල වඩාත්ම පිළිගත හැකි දෙයකි. කාලයත් සමඟ විසඳුම වෙනස් වේ :)
ගෞරව් අගර්වාල්

"... සහ අකුරු ප්‍රමාණය වෙනස් කිරීම අවශ්‍ය වන තැන ද්විත්ව කේත ලිවීම තරම් අකුරු ප්‍රමාණය (අවශ්‍ය නම්) භාවිතා කිරීම කිසිසේත් ප්‍රයෝජනවත් නොවේ ." මගේ ලිපියේ, අකුරු ප්‍රමාණයේ සැකසුමක් නොමැත! මම කළේ අකුරු පරතරයයි. සාමාන්‍යයෙන් කිසිවෙකු එය ඔහුගේ සීඑස්එස් තුළ තබා නැත (එය සැමවිටම සාමාන්‍ය දෙයකි). අකුරු අපි අකුරු ප්‍රමාණය වෙනස් නොකරන බැවින් එය නැවත සැකසීමට මුල් අකුරු ප්‍රමාණය දැන ගැනීමට අවශ්‍ය නැත
එස්. සර්පූෂාන්

ඔපෙරා / ප්‍රෙස්ටෝ හි එය ක්‍රියාත්මක නොවූ නිසා මෙම ක්‍රමය මීට පෙර ජනප්‍රිය නොවූ බව මම සිතමි. දැනට අපට එවැනි වැඩක් අවශ්‍ය නොවන වෙනත් විකල්ප තිබේ, උදා: පේළිගත කිරීම් වෙනුවට ෆ්ලෙක්ස්බොක්ස් භාවිතා කිරීම.
ඉල්යා ස්ට්‍රෙල්ට්සින්



2

මෙහි ඇති අනෙක් විසඳුම් ඉතා සංකීර්ණ / ඕනෑවට වඩා වැඩ කරන බව මා විශ්වාස කරන බැවින් මම පරිශීලක 5609829 ගේ පිළිතුර ටිකක් පුළුල් කිරීමට යන්නෙමි. margin-right: -4pxපේළිගත කිරීමේ අංග වලට a යෙදීමෙන් පරතරය ඉවත් වන අතර සියලු බ්‍රව්සර් මඟින් සහාය ලැබේ. යාවත්කාලීන කළ ෆෙඩලය මෙතැනින් බලන්න . Negative ණාත්මක ආන්තිකයන් භාවිතා කිරීමට කැමති අය සඳහා, මෙය කියවීමට උත්සාහ කරන්න .


4
පරිශීලකයා සිය බ්‍රව්සරයේ පෙරනිමි අකුරු ප්‍රමාණය වෙනස් කළහොත් මෙය ක්‍රියා නොකරනු ඇත. වඩා හොඳ භාවිතය -0.25em.
මාටින් ෂ්නයිඩර්

1

මෙම CSS පෙළ මොඩියුලය පෙළ 4 පිරිවිතර නිර්වචනය ඉතාtext-space-collapse සැකසෙන මෙම මූලද්රව්යයක් තුල හා අවට ආකාරය සුදු අවකාශය පාලනය කිරීමට ඉඩ දෙන, දේපළ.

එබැවින්, ඔබේ උදාහරණය සම්බන්ධයෙන්, ඔබට මෙය ලිවීමට සිදුවේ:

p {
  text-space-collapse: discard;
}

අවාසනාවකට මෙන්, එච්බීපී පිළිතුරට අදහස් දැක්වීමේදී සඳහන් කර ඇති පරිදි (2016 සැප්තැම්බර් වන විට) කිසිදු බ්‍රව්සරයක් මෙම දේපල ක්‍රියාත්මක නොකරයි .


1

සියලු බ්‍රව්සර්වල මා වෙනුවෙන් හොඳින් ක්‍රියා කළ පිරිසිදු CSS විසඳුමක් මට හමු විය:

span {
    display: table-cell;
}

මෙම ප්‍රශ්නය පේළිගත කිරීම ගැන ය.
මදන් භන්දාරි

Ad මදන්බන්දාරි නිවැරදි නමුත් එය සියලු අපිරිසිදු හක්කවල අවශ්‍යතාවය ඉවත් කරන බවක් පෙනේ.
ඩේවිඩ්

1

white-space: nowrapබහාලුම් අංගයට එකතු කරන්න :

CSS:

* {
    box-sizing: border-box;
}
.row {
    vertical-align: top;
    white-space: nowrap;
}
.column{
    float: left;
    display: inline-block;
    width: 50% // Or whatever in your case
}

HTML:

<div class="row">
    <div class="column"> Some stuff</div>
    <div class="column">Some other stuff</div>
</div>

මෙන්න ප්ලන්කර් .


පාවෙන නොමැතිව ක්‍රියා නොකරයි - එය ඔබගේ ජලනල කාර්මිකයා තුළ නොමැත. එබැවින් "සුදු අවකාශය: Nowrap" කිසි විටෙකත් ක්‍රියාකාරී පිළිතුරක් ලෙස නොපෙනේ.
ඩේවිඩ්

1

වැනි විසඳුම් ගොඩක් තියෙනවා font-size:0, word-spacing, margin-left, letter-spacingහා ඒ නිසා.

සාමාන්යයෙන් මම භාවිතා කිරීමට කැමති letter-spacingනිසා

  1. අමතර අවකාශයේ පළලට වඩා විශාල අගයක් අප විසින් පවරන විට එය හරි යැයි පෙනේ (උදා -1em).
  2. කෙසේ වෙතත්, එය සමග හරි වනු ඇත word-spacingහා margin-leftඅප වැනි විශාල අගය තබන විට, -1em.
  3. font-sizeඅපි ඒකකයක් emලෙස භාවිතා කිරීමට උත්සාහ කරන විට භාවිතා කිරීම පහසු නොවේ font-size.

එබැවින්, letter-spacingහොඳම තේරීම බව පෙනේ.

කෙසේ වෙතත්, මම ඔබට අනතුරු ඇඟවිය යුතුයි

ඔබ භාවිතා කරන විට letter-spacingඔබට වඩාත් හොඳ භාවිතා කර -0.3emහෝ -0.31emඅන් අය නොවේ.

* {
  margin: 0;
  padding: 0;
}
a {
  text-decoration: none;
  color: inherit;
  cursor: auto;
}
.nav {
  width: 260px;
  height: 100px;
  background-color: pink;
  color: white;
  font-size: 20px;
  letter-spacing: -1em;
}
.nav__text {
  width: 90px;
  height: 40px;
  box-sizing: border-box;
  border: 1px solid black;
  line-height: 40px;
  background-color: yellowgreen;
  text-align: center;
  display: inline-block;
  letter-spacing: normal;
}
<nav class="nav">
    <span class="nav__text">nav1</span>
    <span class="nav__text">nav2</span>
    <span class="nav__text">nav3</span>
</nav>

ඔබ ක්‍රෝම් (පරීක්ෂණ අනුවාදය 66.0.3359.139) හෝ ඔපෙරා (පරීක්ෂණ අනුවාදය 53.0.2907.99) භාවිතා කරන්නේ නම්, ඔබ දකින දේ විය හැකිය:

රූප විස්තරය මෙහි ඇතුළත් කරන්න

ඔබ ෆයර්ෆොක්ස් (60.0.2), අයිඊ 10 හෝ එජ් භාවිතා කරන්නේ නම්, ඔබ දකින දේ විය හැකිය:

රූප විස්තරය මෙහි ඇතුළත් කරන්න

එය හොඳය. ඉතින්, මම mdn- අකුරු පරතරය පරීක්ෂා කර මෙය සොයා ගතිමි :

දිග

අක්ෂර අතර පෙරනිමි අවකාශයට අමතරව අතිරේක අන්තර්-අක්‍ෂර අවකාශය නියම කරයි. සාරධර්ම negative ණ විය හැකි නමුත් ක්‍රියාත්මක කිරීමේ විශේෂිත සීමාවන් තිබිය හැකිය. පෙළ සාධාරණීකරණය කිරීම සඳහා පරිශීලක නියෝජිතයින් අන්තර් අක්ෂර අවකාශය තවදුරටත් වැඩි කිරීම හෝ අඩු කිරීම නොකළ හැකිය.

හේතුව මෙය බව පෙනේ.


1

එකතු letter-spacing:-4px;මව් මත pCSS හා එකතු letter-spacing:0px;ඔබේ spanCSS.

span {
  display:inline-block;
  width:100px;
  background-color:palevioletred;
  vertical-align:bottom;
  letter-spacing:0px;
}

p {
  letter-spacing:-4px;
}
<p>
    <span> Foo </span>
    <span> Bar </span>
</p>


1

මෙම ප්‍රශ්නයට අළුත් යමක් එකතු කිරීමට මම සිතුවෙමි, දැනට ලබා දී ඇති පිළිතුරු බොහොමයක් ප්‍රමාණවත් හා අදාළ නොවන නමුත්, ඉතා පිරිසිදු නිමැවුමක් ලබා ගත හැකි නව CSS ගුණාංග කිහිපයක් ඇත, සියලු බ්‍රව්සර් හරහා පූර්ණ සහාය ඇතිව සහ සුළු වශයෙන් 'හක්ස්' නැත. මෙය away ත් වන inline-blockනමුත් එය ඔබෙන් ඇසූ ප්‍රශ්නයට සමාන ප්‍රති results ල ලබා දෙයි.

මෙම CSS ගුණාංග වේ grid

IE හැරුණු විට CSS ජාලයට ඉහළ සහයක් ( CanIUse ) අවශ්‍ය වේ-ms- එය ක්‍රියාත්මක වීමට පෙර උපසර්ගයක් වේ.

CSS විදුලිබල පද්ධතියට බෙහෙවින් නම්යශීලී වන අතර, සියලු යහපත් කොටස් ගනී table, flexසහ inline-blockමූලද්රව්ය හා එක් ස්ථානයක් බවට ඔවුන් ගෙන එයි.

A නිර්මාණය කිරීමේදී gridඔබට පේළි සහ තීරු අතර ඇති හිඩැස් නියම කළ හැකිය. පෙරනිමි පරතරය දැනටමත් සකසා ඇති 0pxනමුත් ඔබට මෙම අගය ඔබ කැමති ඕනෑම දෙයකට වෙනස් කළ හැකිය.

එය ටිකක් කෙටි කිරීම සඳහා, අදාළ ක්‍රියාකාරී උදාහරණයක් මෙහි දැක්වේ:

body {
  background: lightblue;
  font-family: sans-serif;
}

.container {
  display: grid;
  grid-template-columns: 100px 100px;
  grid-column-gap: 0; /* Not needed but useful for example */
  grid-row-gap: 0; /* Not needed but useful for example */
}

.box {
  background: red;
}
.box:nth-child(even) {
  background: green;
}
<div class="container">
  <div class="box">
    Hello
  </div>
  <div class="box">
    Test
  </div>  
</div>


display:gridමූලද්‍රව්‍යයක අන්තර්ගතය අවහිර කර ඇති බව පෙන්වා දීම සඳහා අදහස් දැක්වීම පමණක් ප්‍රමාණවත් නොවේ: ජාලකය ඔබට පේළිගත-පිරිසැලසුම් පිරිසැලසුම් සමඟ වැඩ කිරීමට උපකාරී වේ, නමුත් එය ඔබට inline-block'බඩවැල්' පාලනය කළ හැකි යමක් සමඟ වැඩ කිරීම ප්‍රතිස්ථාපනය කිරීමට ඉඩ දෙයි . මෙම ප්‍රශ්නයට අවශ්‍යයි. මීට පෙර, CSS ජාලක පිරිසැලසුම් විසඳුමක් සමඟ කිසිවෙකු තවමත් ප්‍රතිචාර නොදැක්වීම ගැන මම පුදුම වෙමි.
ටයිලර් එච්

මෙය වඩාත් පැහැදිලි වනු ඇත මෙය වෙනස් කිරීමකි inline-block. ඔව්, මමත් පුදුමයට පත් වුනා, අනුමාන කරන්න gridඅත්දැකීම් ඇති කිසිවෙකු මීට පෙර මෙහි පැමිණියේ නැත. එය සමඟ මඳක් සෙල්ලම් කර ඇති අතර මෙම ප්‍රශ්නය අසන්නට ලැබුණේ ඇයිදැයි සිතා බලන්න: P
Stewartside

0

මා සොයාගත් තවත් ක්‍රමයක් නම් පේළියේ පළමු අංගය හැර ආන්තික-වම් negative ණ අගයන් ලෙස යෙදීමයි.

span { 
 display:inline-block;
 width:100px;
 background:blue;
 font-size:30px;
 color:white; 
 text-align:center;
 margin-left:-5px;
}
span:first-child{
 margin:0px;
}

0

inline-blockS අතර ඇති අවකාශය ඉවත් කිරීමට උත්සාහ කරන සෑම ප්‍රශ්නයක්ම a ලෙස පෙනේ<table> මට ...

මේ වගේ දෙයක් උත්සාහ කරන්න:

p {
  display: table;
}
span {
  width: 100px;
  border: 1px solid silver; /* added for visualization only*/
  display: table-cell;
}
<p>
  <span> Foo </span>
  <span> Bar </span>
</p>

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.