ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingเขียน css ให้ object ลอยกลางจอยังไงครับ?
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: เขียน css ให้ object ลอยกลางจอยังไงครับ?  (อ่าน 7397 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
greenhead
ก๊วนเสียว
*

พลังน้ำใจ: 102
ออฟไลน์ ออฟไลน์

กระทู้: 414



ดูรายละเอียด เว็บไซต์
« เมื่อ: 10 สิงหาคม 2013, 10:23:37 »

เขียน css ให้ object ลอยกลางจอยังไงครับ?
ให้ลอยตรงกลาง เหนือ object อื่นๆ โดยมีระยะห่างจากขอบจอซ้าย-ขวา-บน-ล่างเท่าๆกัน

ขอบคุณครับ  wanwan017
บันทึกการเข้า

Moiz-
คนรักเสียว
*

พลังน้ำใจ: 19
ออฟไลน์ ออฟไลน์

กระทู้: 168



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 10 สิงหาคม 2013, 10:28:12 »

ลอยกลางจอเหนือวัตถุให้ศึกษาเรื่อง Style="Position:absolute;z-index:xx} นะครับ แบ่งวัตถุที่จะอยู่ข้างล่างหรือข้างบน ยิ่ง z-index เยอะจะอยู่ข้างบนครับ กลางจอใช้ div กำหนดข้างนอกใช้ margin กำหนดข้างในใช้ padding ครับ ลองศึกษาดูนะครับผม
บันทึกการเข้า

greenhead
ก๊วนเสียว
*

พลังน้ำใจ: 102
ออฟไลน์ ออฟไลน์

กระทู้: 414



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 10 สิงหาคม 2013, 10:55:58 »

ลอยกลางจอเหนือวัตถุให้ศึกษาเรื่อง Style="Position:absolute;z-index:xx} นะครับ แบ่งวัตถุที่จะอยู่ข้างล่างหรือข้างบน ยิ่ง z-index เยอะจะอยู่ข้างบนครับ กลางจอใช้ div กำหนดข้างนอกใช้ margin กำหนดข้างในใช้ padding ครับ ลองศึกษาดูนะครับผม

ขอบคุณครับ
คือถ้าไม่ต้อง position:absolute แล้วต้องมานับ margin-top margin-left จากจุดวาง object
..พอจะมีวิธีให้มันวัด center จากขอบจอบนล่างซ้ายขวามั๊ยครับ .. งงคำถามตัวเอง  wanwan004
คือผมจะไปใส่กับ jQuery น่ะครับ  wanwan017
บันทึกการเข้า

kiraoji
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 226
ออฟไลน์ ออฟไลน์

กระทู้: 1,681



ดูรายละเอียด
« ตอบ #3 เมื่อ: 10 สิงหาคม 2013, 11:01:30 »


div.ex { width:1000px;
      height:auto;
      display:block;
      margin:0;
      padding:0;
      position:fixed;
      top:30%;
      left:0;
      
      
      }
div.ex  .inner      { width:300px;
                       height:300px;
                       display:block;
                       padding:0;
                       margin:0 auto;
                       }

----------------


<div class="ex">
    <div class="inner">
       text description
   </div>
</div>            


ลองดูครับกล่องขนาด 300 ครับ




                      
บันทึกการเข้า
goodwide
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 66
ออฟไลน์ ออฟไลน์

กระทู้: 1,432



ดูรายละเอียด
« ตอบ #4 เมื่อ: 10 สิงหาคม 2013, 11:12:15 »

 wanwan017
ต้องลองอืมทำกับ บอกเกอร์ได้ไหมอ่ะ
บันทึกการเข้า
MapTwoZa
ก๊วนเสียว
*

พลังน้ำใจ: 75
ออฟไลน์ ออฟไลน์

กระทู้: 366



ดูรายละเอียด
« ตอบ #5 เมื่อ: 10 สิงหาคม 2013, 13:17:02 »

แบบไม่ต้องใช้ javascript ช่วย จำเป็นต้อง div 3 อันซ้อนครับ

#html
โค๊ด:
<div class="outer">
  <div class="middle">
    <div class="inner"> ... </div>
  </div>
</div>

#css
โค๊ด:
.outer{
  display: table;
  height: 100%;width: 100%;
  position: fixed; /* หรือจะใช้ absolute ถ้าต้องการให้มันไม่เลื่อนตามหน้าจอ*/
  overflow: hidden;
  z-index: 100; /* ถ้ายังไม่อยู่บนสุดก็เพิ่มค่านี้ */
}
.middle {
  display: table-cell;
  vertical-align: middle;
}
.inner {
  margin:0 auto;
}


ประมาณนี้ครับ ถ้ายังไม่ได้ก็ลองปรับนิดๆหน่อยๆเอา ผมไม่ได้เทส
« แก้ไขครั้งสุดท้าย: 10 สิงหาคม 2013, 13:17:59 โดย MapTwoZa » บันทึกการเข้า

Good code quality Developer Cheesy
iamfenr
ก๊วนเสียว
*

พลังน้ำใจ: 20
ออฟไลน์ ออฟไลน์

กระทู้: 254



ดูรายละเอียด เว็บไซต์
« ตอบ #6 เมื่อ: 10 สิงหาคม 2013, 13:21:56 »

ปกติแค่ margin:auto; มันก็อยู่ตรงกลางแล้วนะคับ
บันทึกการเข้า

MapTwoZa
ก๊วนเสียว
*

พลังน้ำใจ: 75
ออฟไลน์ ออฟไลน์

กระทู้: 366



ดูรายละเอียด
« ตอบ #7 เมื่อ: 10 สิงหาคม 2013, 13:27:22 »

ปกติแค่ margin:auto; มันก็อยู่ตรงกลางแล้วนะคับ

ใช่ครับ ในแนวนอนนะ แต่แนวตั้งไม่ได้ Wink
บันทึกการเข้า

Good code quality Developer Cheesy
seonew
ก๊วนเสียว
*

พลังน้ำใจ: 26
ออฟไลน์ ออฟไลน์

กระทู้: 371



ดูรายละเอียด
« ตอบ #8 เมื่อ: 10 สิงหาคม 2013, 13:48:05 »

ใช่ครับ ในแนวนอนนะ แต่แนวตั้งไม่ได้ Wink


margin:0 auto;
position: relative;
top: 50%;

ได้ไหม  Tongue
บันทึกการเข้า
MapTwoZa
ก๊วนเสียว
*

พลังน้ำใจ: 75
ออฟไลน์ ออฟไลน์

กระทู้: 366



ดูรายละเอียด
« ตอบ #9 เมื่อ: 10 สิงหาคม 2013, 14:06:50 »

ใช่ครับ ในแนวนอนนะ แต่แนวตั้งไม่ได้ Wink


margin:0 auto;
position: relative;
top: 50%;

ได้ไหม  Tongue

top: 50%; มันไม่ได้กลางจอจริงๆครับ

ใช้แบบที่ผมบอกไปเม๊นก่อนหน้านั้น div ซ้อนกัน 3 อัน ก็ไม่ต้องสนใจอะไรแล้วครับ เล่นกับ div.inner ได้เต็มที่ เด๋วมันกลางให้เองครับ
บันทึกการเข้า

Good code quality Developer Cheesy
iCeEffecT
คนรักเสียว
*

พลังน้ำใจ: 14
ออฟไลน์ ออฟไลน์

กระทู้: 177



ดูรายละเอียด
« ตอบ #10 เมื่อ: 10 สิงหาคม 2013, 23:04:28 »

อีกวิธีครับ ใช้ line-heignt เข้าช่วย
ตัวอย่างครับ
http://jsfiddle.net/b4Cnn/
edit ลืมดูครับ หมายถึงใช้กล่องให้อยุ่ตรงกลางก็ตาม rep บนเลยครับ
« แก้ไขครั้งสุดท้าย: 10 สิงหาคม 2013, 23:13:01 โดย iCeEffecT » บันทึกการเข้า
max30012540
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 196
ออฟไลน์ ออฟไลน์

กระทู้: 1,307



ดูรายละเอียด
« ตอบ #11 เมื่อ: 10 สิงหาคม 2013, 23:17:00 »

โค๊ด:
width:100px;
height:120px;
position:fixed;
left:50%;
top:50%;
margin:-60px 0 0 -50px;
เอา top กับ left มาจัดครับ แล้วใช้ margin มาจัดให้ตรงกลางจออีกครั้งหนึ่งครับ
margin:-ครึ่งหนุึ่งของความสูง หรือ height 0 0 -ครึ่งหนึ่งของความกว้าง หรือ width

ต้องขอบคุณท่านผู้หญิงคนหนึ่งในบอร์ดนี้ละครับ ที่เป็นคนบอกเล่าวิธีนี้ แล้วผมก็จำมาใช้

ตัวอย่างเพิ่มเติม
โค๊ด:
<style>
.h{
width:500px;
height:420px;
position:fixed;
left:50%;
top:50%;
margin:-210px 0 0 -250px;
background:#CCC;
}
</style>
<div class="h"></div>
« แก้ไขครั้งสุดท้าย: 10 สิงหาคม 2013, 23:19:39 โดย max30012540 » บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์