div กับหน้าจอ กว้าง x ยาว เท่าไหร่ก็อยู่กลางหน้า
952 viewsเรื่อง css ผมยังไม่ค่อยได้เรื่องได้ราวเท่าไหร่ แต่อยากได้ div ที่วางยังไงก็อยู่ตรงกลาง
แบบว่าวาง layout ด้วย table มันหมดยุคแล้ว (ไปนานแล้ว) แต่ผมเพิ่งรู้สึกตัว :(
พอดีไปเจอ css ชุดหนึ่งที่น่าจะเป็นประโยชน์อย่างมาก คือการจัดวางให้ content อยู่กลางหน้าจอ
ไม่พ้นที่ต้องเอามา share กัน มาดูกันเลย ง่ายสุดๆ
<div style="position: absolute; width: 1020px; height: 600px; left: 50%; margin-left: -510px; top: 50%; margin-top: -300px;"> ข้อมูลของเรา จะใส่ table ในนี้ก็ตามใจ อย่าไปกังวลไรมาก ทำงานให้ดูได้ก็จบ ! </div>
จาก code เรามาดูกันถึงรายละเอียด
width: 1020px;
คือความกว้างของ content ของเรา
height: 600px;
คือความสูงของ content ของเรา
ด้วยความต่างของ browser ที่ support มาตรฐานไม่ตรงกันเลยเกิด
left: 50%; margin-left: -510px;
top: 50%; margin-top: -300px;
พวก top: left: 50% ก็ง่ายๆ อยู่กลางจอ ส่วน
margin-left: และ margin-top: ต้องใช้เครื่องคิดเลขกันหน่อย
คือแบบว่าเขียนโปรแกรมนานไม่ค่อยได้บวกเลข
ก็เอา ความกว้าง 1020 / 2 และความสูง 600 / 2 ก็จะได้ค่าทั้ง 2 ตัว
ที่ต้องติดลบก็เพราะว่าวัดครึ่งจากตัวมัน แล้วติดด้านบน กับชิดซ้าย
ตามตัวเลขดังกล่าวนั่นเอง
code บรรทัดเดียว โม้ได้ยาว มันน่าภูมิใจจริงๆ
6 Comments »
RSS feed for comments on this post. TrackBack URL
ผมแนะนำว่าในกรณีเวบทั่วๆ ไป อย่าไปคิดว่า user จะใช้ความละเอียดหน้าจอเหมือนกันหมดครับ
วิธีเซ็ตให้ block อยู่ตรงกลาง ตั้ง margin: 0px auto; เอาก็ได้ครับ
ใช้แบบนี้กลางกว่าครับ ไม่ต้องคิดไรด้วย
.center {
float:none;
margin:0 auto;
position:absolute;
}
หรือถ้าไม่กลางจิงๆต้องแบบนี้แน่นอน
.center {
width:300px; /* จำเป็นต้องกำหนดความกว้างให้คงที่ */
position:absolute;
left:50%; /* ด้านซ้ายครึ่งจอ */
margin-left:-150px; /*margin-left ติดลบครึ่งหนึ่งของความกว้าง */
}
หน้าจอแต่ละผู้ใช้ไม่เท่ากันต้องใช้ margin: 0px auto;
กำกำกำ
เย้ ขอบคุณมากเลยค่ะที่เขียนสอนไว้ หามานาน^^
เราเคยลองแบบ คุณ deans4j บอกแล้วมันไม่กลางอ่าค่ะ เราอาจจะลงโค้ดตรงไหนผิดไปก็ได้ >.<
แต่ว่าแบบของคุณ Pipo ใช่ที่ต้องการเลย ขอบคุณมากจริงๆค่ะ ^0^
กำหนด width ให้คงที่
width: 980px
margin:0 auto;
ถ้าไม่ตรงกลางนะ เมลล์มาด่าได้เลย