มีปัญหาเรื่อง DIV ตัวแรกกับตัวสุดท้ายครับ

เริ่มโดย peith, 07 มิถุนายน 2012, 16:52:52

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

peith

สมมุติว่าผมสร้าง div ขึ้นมา 4 ตัวเรียงกัน และต้องการให้มี margin-right: 5px แต่ละ div
จะทำยังไงให้ไม่มี margin-right ในตัว div สุดท้ายครับ  :-X

npdesign

อาจจะใช้ Inline หรือไม่ก็สร้าง class ให้กับตัวสุดท้าย ใส่เป้น margin: 0; ก็ได้ครับ  :wanwan017:


[direct=http://npdesign.in.th]รับทำเว็บไซต์[/direct] | [direct=http://www.npdesign.in.th/]ออกแบบเว็บไซต์[/direct] | [direct=http://appview.in.th/]รีวิวแอพ[/direct] | [direct=http://npdesign.in.th/]UI Design[/direct] | [direct=http://npdesign.in.th/]Application Design[/direct]

Finch

ห่วงเรื่องบราวเซอร์มั๊ยครับ ถ้าไม่สนบราวเซอร์รุ่นเก่า ก็ใช้

div:last-child ได้ครับ

เวลาเขียนก็

div{
margin-right:5px;
}
div:last-child{
margin-right:0px
}


แต่ถ้ายังกลัวเรื่องบราวเซอร์ที่ไม่สนับสนุน CSS3 ก็ลองใช้วิธีเปลี่ยนฝั่งของ margin นะครับ
จริงๆแล้ว การกำหนด margin-right:5px ให้ div 3 ตัวยกเว้นตัวสุดท้าย
มันก็แสดงผลเหมือนกับการกำหนด margin-left:5px ให้ div 3 ตัวยกเว้นตัวแรก จริงมั๊ยครับ

div{
margin-left:5px;
}
div:first-child{
margin-left:0px;
}

thanagrid


siammbk

อ้างถึงจาก: peith ใน 07 มิถุนายน 2012, 16:52:52
สมมุติว่าผมสร้าง div ขึ้นมา 4 ตัวเรียงกัน และต้องการให้มี margin-right: 5px แต่ละ div
จะทำยังไงให้ไม่มี margin-right ในตัว div สุดท้ายครับ  :-X

เรียงแบบนี้ป่าว
<style>
  .xxx{margin-right:5px;}
</style>
<div>1</div><div>2</div><div>3</div><div class="xxx">4</div>

หรืออีกแบบ
<style>
div div div div{margin-right:5px;}
</style>
<div>
    <div>
        <div>
           <div></div>
        </div>
    </div>
</div>

:wanwan023:
รับออกแบบเว็บไซต์ ทุกรูปแบบ งานใหญ่ๆ ระบบยากๆ ราคาแรงๆ คุยกันคับ
line : siammbk
tel : 095-675-8614

pinsale


makoto

ผมใช้ class ทุกตัวยกเว้นตัวสุดท้ายใช้ id แทน :wanwan020:
[direct=https://www.kasetorganics.org]เกษตรปลอดสารพิษ[/direct] [direct=https://kaset.vwander.com]ผักสวนครัวรั้วกินได้[/direct] [direct=https://www.kasetorganic.com/knowledge/avocado/]ปลูกอะโวคาโด[/direct]

ghostbehead

ถ้าใช้ last-child ระวัง IE ด้วยนะครับ
รู้สึกว่า IE จะสามารถใช้ได้แค่ first-child ครับผม

ผมแนะนำแบบนี้ครับ

<style>
.item:first-child { margin-left: 0; }
.item { margin-left: 5px; }
</style
<div class="content">
   <div class="item"></div>
   <div class="item"></div>
   <div class="item"></div>
   <div class="item"></div>
   <div class="item"></div>
</div>


จริงๆ มีหลายวิธีนะครับ ลองปรับไปเรื่อยๆ ครับ
[direct=http://tinytastebake.com/]ขาย Brownie Brownie Cracker[/direct][direct=http://shoesdeedee.com/]ขายคอนเวิร์สมือสอง รองเท้ามือสอง[/direct]<br />[direct=http://isareeya.com/]บทความ ข่าวสาร เทคโนโลยี[/direct]<br />[direct=http://sangsanweb.com/]รับทำเว็บไซต์ PHP Wordpress[/direct]

peith

ขอบคุณสำหรับทุกคำตอบครับ  :wanwan017:

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

ghostbehead

#9
ให้ script นับจำนวนที่สร้าง ไงครับ พอตรงตามต้องการก็ให้ใส่อีก class

class นั้นก็เป็น margin-left: 0; ไป

แต่จริงๆ แบบนี้เค้าก็ปล่อยไปนะครับ คือให้มันถีบเองไปเรื่อยๆ กำหนด ซ้ายขวา เท่าๆ กันก็ ok นะครับ :D
[direct=http://tinytastebake.com/]ขาย Brownie Brownie Cracker[/direct][direct=http://shoesdeedee.com/]ขายคอนเวิร์สมือสอง รองเท้ามือสอง[/direct]<br />[direct=http://isareeya.com/]บทความ ข่าวสาร เทคโนโลยี[/direct]<br />[direct=http://sangsanweb.com/]รับทำเว็บไซต์ PHP Wordpress[/direct]

jojoluzifer

ถ้าเรียงกัน 4 อันเลยจะยากน่ะครับ

ใช้ div ครอบ 4 อัน ดูครับ

<div id="test">
   <div>*4

</div>

#test:last-child{

}

ossytong

ใช้

<ul>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
</ul>

จะเหมาะกว่าครับ

จากนั้นจัด css li เป็น flloat: left; จากนั้นก้จัด css ได้เลยครับ



homely

ปกติ เขาจะใช้วิธี margin-right:5px ไปทุกๆ div เลยนะครับ แต่มีการกำหนด กรอบนอกแทน เพื่อให้ครบ4แล้วจะถีบลงบรรทัดถัดๆไป

       <div style="width:420px;border:1px solid black;padding-left:5px;margin:0 auto;">
           <div style="float:left;margin-right:5px;width:100px;height: 100px;margin-bottom: 5px;background: red;"></div>
           <div style="float:left;margin-right:5px;width:100px;height: 100px;margin-bottom: 5px;background: yellow;"></div>
           <div style="float:left;margin-right:5px;width:100px;height: 100px;margin-bottom: 5px;background: red;"></div>
           <div style="float:left;margin-right:5px;width:100px;height: 100px;margin-bottom: 5px;background: yellow;"></div>
           <div style="float:left;margin-right:5px;width:100px;height: 100px;margin-bottom: 5px;background: red;"></div>
           <div style="float:left;margin-right:5px;width:100px;height: 100px;margin-bottom: 5px;background: yellow;"></div>
           <div style="float:left;margin-right:5px;width:100px;height: 100px;margin-bottom: 5px;background: red;"></div>
           <div style="float:left;margin-right:5px;width:100px;height: 100px;margin-bottom: 5px;background: yellow;"></div>
           <br style="clear:both;"/>
       </div>

ประมาณนี้อะครับ ลบ inline style ออกไปไเป็นคลาสแทนครับ ลองปรับๆดู :wanwan016:


ultrasad

อ้างถึงจาก: peith ใน 09 มิถุนายน 2012, 01:11:24
ขอบคุณสำหรับทุกคำตอบครับ  :wanwan017:

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

ก็เงื่อนไขเิดียวกันกับ เวลาที่กำหนดให้ div ขึ้นบรรทัดใหม่ เมื่อครบ 4 div แหละครับ
ครบ 4 div ก็ใส่ class งงป่าวหว่า  :P
[direct=http://www.thaiseoboard.com]ThaiseoBoard[/direct] | รวมรักใดในภิภพจบโลกา แม้นเลิศหล้า ก็ไม่ถึงกึ่งมารดร | I am Redshirted

ทฤษฎีทาง SEO อาจต้องทำตัว Bold หรือ Underline แต่คำว่า "รัก" ไม่ต้องก็ได้ เพราะเธอคงรู้ว่ามันมีความหมาย และ สำคัญ.

[direct=http://download.scriptinw.com]ดาวน์โหลดโปรแกรมฟรี[/direct] ทำเว็บให้คนใช้ ไม่ได้ทำไว้ให้บอทอ่าน :)


Shin69

ผมมักจะใช้วิธี เขียน if else ครอบ loop ที่สร้าง div นะครับ นับจำนวนรอบที่โพสเอาไว้ ถ้า หารด้วย 4 ลงตัว ให้เติม class (สมมุติชื่อ last) ลงไป

// ใน loop ที่เราใช้ gen div ออกมาใช่ป่าว ผมจะ สมมุติตัวนับรอบชื่อ $div นะครับ วนครบรอบก็ +1 ไปเรื่อยๆ

<div class="box<?php if(($div %4) == 0) { echo ' last'; } ?>">

งงไหมหว่า  :-[