การจัดกึ่งกลางภาพพื้นหลังโดยใช้ CSS


148

ฉันต้องการจัดวางภาพพื้นหลังไว้ที่กึ่งกลาง ไม่มีการใช้ div นี่คือCSSสไตล์ :

body{
    background-position:center;
    background-image:url(../images/images2.jpg) no-repeat;
}

CSS CSS ด้านบนทั่วและวางกึ่งกลาง แต่ไม่เห็นภาพครึ่งหนึ่งมันแค่เลื่อนขึ้น สิ่งที่ฉันต้องการจะทำคือจัดภาพให้อยู่ตรงกลาง ฉันสามารถนำภาพไปใช้ดูบนหน้าจอขนาด 21 นิ้วได้หรือไม่


1
ตอนนี้ขึ้นอยู่กับขนาดของภาพและขนาดของเบราว์เซอร์ใช่ไหม
nikc.org

@ Nikc +1 ฉันรู้ แต่ต้องรู้ว่ามีวิธี
แก้ไขไหม

คำตอบ:


305
background-image: url(path-to-file/img.jpg);
background-repeat:no-repeat;
background-position: center center;

ว่าควรจะทำงาน

ถ้าไม่ใช่ทำไมไม่สร้างdivภาพและใช้z-indexเป็นพื้นหลัง? นี่จะง่ายกว่าการจัดกึ่งกลางภาพพื้นหลังบนร่างกาย

นอกเหนือจากนั้นลอง:

background-position: 0 100px;/*use a pixel value that will center it*/หรือฉันคิดว่าคุณสามารถใช้ 50% ถ้าคุณตั้งค่าร่างกายของคุณmin-heightเป็น 100%

body{

    background-repeat:no-repeat;
    background-position: center center;
    background-image:url(../images/images2.jpg);
    color:#FFF;
    font-family:Arial, Helvetica, sans-serif;
    min-height:100%;
}

มันรวมศูนย์ แต่แสดงเพียงครึ่งหน้าจอฉันหวังว่า stackoverflow มีตัวเลือกในการแนบภาพหน้าจอ
X10nD

คุณสามารถสร้างภาพหน้าจอและอัปโหลดไปยังเซิร์ฟเวอร์ของคุณหรือไซต์โฮสต์รูปฟรีเช่น photobucket.com หรือทำตัวอย่างชั่วคราวที่ www.jsfiddle.net และโพสต์ลิงก์ให้เรา จากสิ่งที่คุณพูดภาพมีขนาด 1600x1200 และความละเอียดหน้าจอส่วนใหญ่ไม่สูงมากลองปรับขนาดภาพให้พอดี ฉันใช้จอไวด์สกรีนที่ 1440x900 เช่น
Kyle

สกรีนช็อต - imagevat.com/picview.php?ig=6179ฉันไม่แน่ใจว่าจะอัปโหลดภาพไปยัง jsfiddle ได้อย่างไรถ้าคุณสามารถช่วยฉันได้ที่นั่นjsfiddle.net/yWrQP
X10nD

ในการเพิ่มภาพไปยัง jsfiddle เพียงใช้เส้นทาง http แบบเต็ม EX: background-image:url(http://www.myurl.com/images/image.jpg);ใส่ลงใน CSS
Kyle

ฉันไม่มีเซิร์ฟเวอร์ที่จะทำ แต่ใช้เว็บไซต์ imagehosting แต่ยังตรวจสอบตอนนี้
X10nD

20

ฉันใช้รหัสนี้มันใช้งานได้ดี

html, body {
  height: 100%;
  width: 100%;
  padding: 0;
  margin: 0;
  background: black url(back2.png) center center no-repeat;;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}

ขอบคุณ! ฉันไม่รู้ด้วยซ้ำว่ามีการประกาศต่าง ๆ สำหรับ webkit ฯลฯ ...
Mike Rapadas

เฮ้วิกเตอร์ฉันใช้รหัสของคุณเยอะ แต่ตอนนี้มันไม่ทำงาน ฉันเพิ่มพื้นหลังแนบ: แก้ไข; แต่มันไม่ทำงานบนเบราว์เซอร์ iPad ของฉัน ...
Vadim

-webkit-background-sizeมีเพียงจากการประกาศพิเศษแม้ว่า
BigBang1112

16

ฉันคิดว่านี่คือสิ่งที่ต้องการ:

body
{
    background-image:url('smiley.gif');
    background-repeat:no-repeat;
    background-attachment:fixed;
    background-position:center;
} 

6
พื้นหลังสิ่งที่แนบมาแก้ไขปัญหาสำหรับฉัน;)
kdoteu

7

ลอง

background-position: center center;

ศูนย์คู่สองทำงานอย่างไร อย่างไรก็ตามมันไม่ได้แก้ปัญหายังคงเหมือนเดิม
X10nD

1
@Jean: ดูรายละเอียดที่จริงแล้วพื้นหลังตำแหน่งจริงสามารถรับ 2 ค่า (แนวนอนและแนวตั้ง) w3.org/TR/CSS2/colors.html#propdef-background-position
Rob van Groenewoud

@rob มันไม่ทำงานรูปภาพกำลังปูกระเบื้อง ภาพเป็น 1600x1200 และขนาดหน้าจอของฉันคือ 1280x800
X10nD

2
@Jean คุณไม่สามารถปรับขนาดภาพพื้นหลังได้ (ยัง) เป็นไปได้ใน CSS 3 แต่ยังไม่รองรับอย่างกว้างขวาง center centerควบคู่กับbackground-repeat: no-repeatควรทำสิ่งที่คุณขอ - จัดศูนย์กลางของภาพ
Pekka

2
@ Jean ahh ฉันเห็นตอนนี้จาก shot หน้าจอของคุณ คุณจำเป็นต้องให้ของจึงขยายออกไปทั่วแบบเต็มหน้าจอ นั่นอาจเรียงลำดับ bodymin-height100%
Pekka

5

แบบนี้:

background-image:url(https://upload.wikimedia.org/wikipedia/commons/thumb/8/8b/Dore_woodcut_Divine_Comedy_01.jpg/481px-Dore_woodcut_Divine_Comedy_01.jpg);
background-repeat:no-repeat;
background-position: center;
background-size: cover;

html{
height:100%
}

body{
background-image:url(https://upload.wikimedia.org/wikipedia/commons/thumb/8/8b/Dore_woodcut_Divine_Comedy_01.jpg/481px-Dore_woodcut_Divine_Comedy_01.jpg);
background-repeat:no-repeat;
background-position: center;
background-size: cover;
}


3

มีข้อผิดพลาดในรหัสของคุณ คุณกำลังใช้รูปแบบซินแท็กซ์แบบเต็มรูปแบบและสัญลักษณ์แบบย่อบนคุณสมบัติภาพพื้นหลังนี่เป็นสาเหตุให้ไม่ต้องทำซ้ำเนื่องจากไม่มีค่าที่ถูกต้องสำหรับคุณสมบัติภาพพื้นหลัง

body{   
    background-position:center;
    background-image:url(../images/images2.jpg) no-repeat;
}

ควรเป็นหนึ่งในสิ่งต่อไปนี้:

body{
    background:url(../images/images2.jpg) center center no-repeat;
}

หรือ

body
{
    background-image: url(path-to-file/img.jpg);
    background-repeat:no-repeat;
    background-position: center center;
}

แก้ไข: สำหรับปัญหาการปรับขนาดภาพของคุณคุณอาจต้องการดูคำตอบของคำถามนี้


'พื้นหลัง: url (../ images / images2.jpg) ศูนย์กึ่งกลางไม่ซ้ำกัน' ไม่ทำงานเนื่องจากไวยากรณ์ผิดและอื่น ๆ ไม่ทำงานอย่างใดอย่างหนึ่ง
X10nD


2
background-repeat:no-repeat;
background-position:center center;

ห้ามจัดกึ่งกลางของภาพพื้นหลังในแนวตั้งเมื่อใช้ประเภทเอกสาร html 4.01 'STRICT'

เพิ่ม:

background-attachment: fixed;

ควรแก้ไขปัญหา

(อเล็กซานเดอร์ถูกต้อง)



0

หากคุณไม่พอใจกับคำตอบข้างต้นให้ใช้สิ่งนี้

    * {margin: 0;padding: 0;}

    html
    {
        height: 100%;
    }

    body
    {
        background-image: url("background.png");
        background-repeat: no-repeat;
        background-position: center center;
        background-size: 80%;
    }

0

มีปัญหาเดียวกัน คุณสมบัติการแสดงและการใช้ขอบและมันใช้งานได้

.background-image {
  background: url('yourimage.jpg') no-repeat;
  display: block;
  margin-left: auto;
  margin-right: auto;
  height: whateveryouwantpx;
  width: whateveryouwantpx;
}

0
background-position: center center;

ไม่ทำงานสำหรับฉันหากไม่มี ...

background-attachment: fixed;

ใช้ทั้งสองกึ่งกลางภาพของฉันบนแกน x และ y

background-position: center center;
background-repeat: no-repeat;
background-attachment: fixed;

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.