2013-01-05 20 views
7

Tôi có 2 div, cha mẹ và con, tôi muốn con bên trái đó (đường viền trái) sẽ ở giữa cha mẹ.css "trái" không hoạt động

Tại sao mã này không hoạt động? đó là left: 50% cho trẻ em, không hoạt động.

<div id="outher"> 
    <div id="inner"> 

    </div> 
</div> 

css:

#outher { 
    width: 1000px; 
    height: 1000px; 
    background-color: #ccc; 
} 

#inner { 
    width: 400px; 
    height: 300px; 
    background-color: #090; 
    left: 50%; 
} 

bản demo http://jsfiddle.net/vrse2/5/

Trả lời

18

Bạn cần phải thiết lập position để absolute hay relative:

#inner { 
    width: 400px; 
    height: 300px; 
    background-color: #090; 
    position: absolute; 
    left: 50%; 
} 
3

Bạn cần phải thêm position: absolute; đến CSS của bạn. left được sử dụng để định vị tuyệt đối.

Trong trường hợp của bạn:

#inner { 
    width: 400px; 
    height: 300px; 
    background-color: #090; 
    position: absolute; 
    left: 50%; 
} 
2

Sử dụng:

margin-left: 50%; 

Hoặc:

position:relative; 
left:50%; 
+0

'lề trái 'là một thứ hoàn toàn khác. Để biết thêm thông tin về điều này, hãy xem http: // stackoverflow.com/questions/6419411/top-left-vs-margin-top-margin-left. –

9

CSS left chỉ hoạt động với các yếu tố định vị.

Quoted from W3C

Values <length> | <percentage> | auto | inherit 
Initial value auto 
Applies to positioned elements 
Inherited No 

Hãy thử

#inner { 
    width: 400px; 
    height: 300px; 
    background-color: #090; 
    position: absolute; 
    left: 50%; 
} 

Tốt đọc

  1. MDN : CSS Reference -left (Best IMHO)
  2. W3C : CSS/Properties/left
+0

Cảm ơn, câu trả lời rất tốt – RIKI

+0

@OTARIKI cảm ơn bạn ... và bạn rất hoan nghênh –

1

Hãy thử Với điều sau đây:

HTML Part:

<div id="outher"> 
    <div id="inner"> 

    </div> 
</div> 

CSS Phần:

#outher { 
    width: 1000px; 
    height: 1000px; 
    background-color: #ccc; 
} 

#inner { 
    width: 400px; 
    height: 300px; 
    background-color: #090; 
    left: 50%; 
    margin:0 auto; 
    position: absolute; 
} 

Tôi nghĩ điều này có thể giúp bạn giải quyết vấn đề của mình.

0

Tôi có thể thêm rằng nếu bạn không có% ở bên trái, hình ảnh của bạn sẽ tiếp tục xếp chồng hoặc chúng sẽ sử dụng khoảng cách bên trái "giữa" các cạnh của hình ảnh gốc. Điều này không được chỉ ra ở trên, và rất khó hiểu.

+0

Đăng bài này dưới dạng nhận xét. –