2013-09-03 40 views
11

enter image description hereSử dụng vị trí: tuyệt đối trong khi vẫn giữ nó trong luồng tài liệu

Đây là ảnh chụp màn hình từ một trang hiện tôi đang xây dựng. Tôi đang cố gắng đảm bảo nút màu xanh lá cây luôn ở dưới cùng của vùng chứa. Dưới đây là một phần của mã:

HTML

<div class="list-product-pat"> 
    <article> 

    <!-- title, image, spec ... --> 

    <div class="pricing-pat"> 

    <!-- the button goes here --> 

    </div> 
    </article> 
</div> 

CSS

.list-product-pat article { 
    position: relative; 
    min-height: 260px; 
} 

.list-product-pat .pricing-pat { 
    position: absolute; 
    bottom: 0; 
    width: 100%; 
} 

Cho đến nay không có vấn đề ... cho đến khi sản phẩm đặc tả trở nên quá dài và nó đột nhập vào nút màu lục.

enter image description here

tôi muốn duy trì vào nút màu xanh lá cây ở vị trí đáy nhất, nhưng trong thời tôi cũng muốn chiều cao để mở rộng nếu tiêu đề sản phẩm/sản phẩm đặc tả trở nên quá dài.

Trong thế giới lý tưởng, nó phải là một cái gì đó như thế này:

enter image description here

Vì vậy, ý tưởng của tôi là để duy trì vị trí tuyệt đối trong khi vẫn giữ nó bên dòng chảy tài liệu (vì vậy sản phẩm gì về việc các màu xanh lá cây là có và không vượt qua nó).

Tôi chỉ cần mở rộng nếu chiều cao đặc tả quá dài. Nói cách khác, nếu spec ở chiều cao bình thường, nó sẽ không phạm vi. Tôi muốn tránh a weird gap between the spec and the green button.

Có ý tưởng nào về cách thực hiện không?

Đây là một fiddle để xem làm thế nào tôi đã làm nó:http://jsfiddle.net/xaliber/xrb5U/

+12

OMG! Có gì sai với trình chặn quảng cáo của tôi ... Ah, ảnh chụp màn hình. –

+1

Nhân bản: http://stackoverflow.com/questions/16155003/constant-row-hight – cimmanon

Trả lời

4

Thêm position:absolute mất nó ra khỏi dòng chảy tài liệu, không có cách nào để giữ nó trong nó. Thay vào đó, bạn có thể thêm padding-bottom tương đương với chiều cao của nút vào hộp chứa article, điều này sẽ ngăn văn bản dài tràn ngập nút.

.list-product-pat article { 
    position: relative; 
    min-height: 260px; 
    padding-bottom:80px; 
    -moz-box-sizing:border-box; 
    box-sizing:border-box; 
} 

http://jsfiddle.net/xrb5U/3/

Một vấn đề riêng biệt là hai container với số lượng khác nhau của văn bản sẽ được kích cỡ khác nhau (nếu lớn hơn min-height thiết lập). Không có sửa chữa dễ dàng cho điều này trong CSS định vị, bạn phải nghỉ mát để Javascript, Flexbox hoặc display:table-cell để giữ chiều cao của tất cả chúng giống nhau nhưng mỗi người trong số họ có vấn đề riêng của họ quá.

+0

Tôi đã nghĩ về điều đó; Tôi cũng nghĩ đến việc thêm 'min-height' của' article' với chiều cao của nút. Nhưng đặt nó theo cách đó sẽ trông kỳ lạ (quá dài) khi spec là ở độ cao bình thường (sẽ có một khoảng cách rất lớn giữa spec và nút màu xanh lá cây).:/ – deathlock

+0

Đó là những gì "hộp kích thước: hộp biên giới;" bit là cho;) Nó bao gồm padding bên trong min-height của bạn, vì vậy nếu văn bản ngắn khoảng cách giữa nút và văn bản là bình thường - không có không gian lớn. – mikel

+0

Bạn có thể nhìn thấy nó trên jsfiddle của tôi - ngay cả với padding-bottom, bên trái nhất một "bài viết" có cùng độ cao như trong jsfiddle của bạn. – mikel

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