2013-06-25 33 views
6

Khi nội dung của khối có số overflow: hidden;border-radius được dịch, các góc của nó không bị ẩn. Có giải pháp nào để sửa lỗi này không?

HTMLvới bán kính đường viền và dịch3d

<div class="scroller"> 
    <div class="scroller-content"></div> 
</div> 

CSS

.scroller{ 
    width: 300px; 
    height: 500px; 
    border: 3px solid red; 
    border-radius: 30px; 
    overflow: hidden; 
} 
.scroller-content{ 
    width: 300px; 
    height: 300px; 
    background: green; 
    -webkit-transform: translate3d(0, -8px, 0); 
} 

http://jsfiddle.net/aZ5Qn/

+2

có thể trùng lặp của [Bán kính biên giới Webkit kết hợp với css3 dịch3D chảy máu] (http://stackoverflow.com/questions/14470796/webkit-border-radius-combined-with-css3- translate3d-bleeding) –

+0

@EvanMulawski nó không giúp gì được, hãy thử nó, ẩn sau biên giới. –

+1

đây là lỗi trong webkit: http://code.google.com/p/android/issues/detail?id=25499 –

Trả lời

1

Vì bạn đang không sử dụng z trong dịch, bạn có thể thay đổi nó để translate2d, mà không làm việc:

demo

.scroller{ 
width: 300px; 
height: 500px; 
border: 3px solid red; 
border-radius: 30px; 
overflow: hidden; 
} 
.scroller-content{ 
width: 300px; 
height: 300px; 
background: green; 
-webkit-transform: translate(0, -8px); 
} 

Điều này được ghi lại trong liên kết mà Chtiwi Malek cung cấp, nhưng ở đây nó chỉ là trình duyệt dành cho thiết bị di động và tôi gặp sự cố này trên máy tính để bàn.

chỉnh sửa

Nó cũng làm việc (ít nhất là trong máy tính để bàn) nếu bạn thiết lập tràn và biến đổi trong cùng một nguyên tố

.scroller{ 
    width: 300px; 
    height: 500px; 
    border: 3px solid red; 
    border-radius: 30px; 
    overflow: hidden; 
    -webkit-transform: translate3d(0, -8px, 5px); 
} 
.scroller-content{ 
    width: 300px; 
    height: 300px; 
    background: green; 
} 
+1

tiếc là tôi cần dịch3d –

+0

Đã thêm một cách giải quyết khác, hãy xem câu trả lời – vals

+0

Giống như đề cập đến câu hỏi, chỉ cần đặt nhỏ translate3d trên container để làm cho tràn: ẩn công việc. Tôi đã sử dụng biến đổi: translate3d (0, 0, -1px); –

4

Accually, bạn có thể chỉ cần đặt

transform: translate3d(0,0,0);

Trên yếu tố bạn cần s overflow + border-radius kết hợp ...

Các vấn đề liên quan