2012-04-09 35 views
30

Tôi có một câu hỏi lạ. Trên trang của tôi, tôi có một hình ảnh chính của một hành tinh trong một số tinh vân nhiệm vụ nặng nề. Tôi đã thiết lập nó sao cho chiều rộng tối thiểu là 1000px và tối đa là 1500px. Tôi có các mặt mờ dần và điều này trông tuyệt vời với màn hình lớn hơn. Những gì tôi muốn cố gắng làm là khi bạn đang nhìn vào nó trên một thiết bị di động ví dụ và nó cắt chiều rộng ở 1000 pixel, tôi muốn hình ảnh nói 1300 pixel rộng, trung tâm và 150 pixel được cắt ở mỗi bên để bạn không thể thấy mờ dần, nhưng vẫn có thể phóng to chiều rộng của cửa sổ trở nên lớn hơn nói trên như một iMac lớn và mờ dần sau đó sẽ hiển thị trở lại khi bạn vượt qua chiều rộng 1300 pixel đó.định cỡ div dựa trên chiều rộng cửa sổ

Suy nghĩ ban đầu của tôi là làm điều gì đó có lợi nhuận tiêu cực ở hai bên, nhưng tôi không thể làm việc này trong khi giữ chiều rộng tối đa và kết hợp.

Đây là phần mã cụ thể từ trang, mặc dù html và css ở ngay đó để mọi người xem, bạn chỉ có thể sử dụng lệnh tốt để tìm ID div đó cho bất kỳ tìm kiếm nào khác.

<div style="position:relative;width:100%;"> 
    <div id="help" style=" 
     position:relative; 
     z-index:1; 
     height:100%; 
     min-width: 1000px; 
     max-width: 1500px; 
     margin: 0 auto; 
    "> 
     <img src="http://i.stack.imgur.com/tFshX.jpg" border="0" style="width:100%;"> 
    </div> 
</div> 

Bất kỳ suy nghĩ nào về điều này, nó rất gần với cách tôi muốn, chỉ cần một tinh chỉnh nhỏ.

+0

gì nếu bạn đưa hình ảnh làm hình nền của div và làm background-position của nó để tập trung? – szajmon

+1

+1 - trang web đẹp và câu hỏi phức tạp – Alain

+0

haha ​​cảm ơn, rất vui vì bạn thích trang web, sau đó chỉ là vấn đề triển khai nội dung. Về việc làm nó như là một nền tảng, tôi không chắc chắn làm thế nào điều này sẽ thay đổi bất cứ điều gì vì nó vẫn là div đó là kích thước lại. Tôi đoán câu hỏi là, bạn có thể nhắc một sự thay đổi trong css dựa trên chiều rộng cửa sổ? – loriensleafs

Trả lời

9

Âm thanh như bạn cần một thiết kế web đáp ứng:

http://www.alistapart.com/articles/responsive-web-design/

Sử dụng những kỹ thuật này, bạn có thể tạo các quy tắc css tùy chỉnh mà nhắm vào màn hình có kích thước chỉ điện thoại di động.

+0

Đây là một cách tốt để đi. Nó có thể là giá trị tìm kiếm thông qua mã nguồn của bộ xương css, mặc dù bạn không cần phải chạm vào hầu hết của nó; trong cả base.css hoặc skeleton.css, có các ví dụ về cách tạo kiểu nhất định chỉ ảnh hưởng khi màn hình nhỏ: http://www.getskeleton.com/ – AlexMA

+0

hmm, vì vậy vấn đề cụ thể này không bị giới hạn đối với thiết bị di động , đó là vấn đề chiều rộng cũng xảy ra trong cửa sổ trình duyệt của thứ nguyên này. – loriensleafs

+0

... Có lẽ tôi nên đọc thêm bài viết trước khi tôi viết, hãy để tôi xem điều này có cần gì không, có vẻ như nó có thể – loriensleafs

4

Cố định vị tuyệt đối:

<div style="position:relative;width:100%;"> 
    <div id="help" style=" 
    position:absolute; 
    top: 0; 
    right: 0; 
    bottom: 0; 
    left: 0; 
    z-index:1;"> 
     <img src="/portfolio/space_1_header.png" border="0" style="width:100%;"> 
    </div> 
</div> 
+0

hmm sao cho phù hợp với màn hình rộng 1000 pixel. Nhưng có thể có hình ảnh để khi cửa sổ 1000 pixel trở xuống bị tràn, nhưng không chỉ ở một bên, cả hai bên đều như nhau, nhưng vẫn giữ khả năng có chiều rộng tối đa 1500 pixel? – loriensleafs

5

Một mẹo hay là sử dụng chúng tôi trong hộp bóng, và để cho nó làm tất cả các fading cho bạn hơn là áp dụng nó vào hình ảnh.

+0

có hoạt động với mặt nạ webkit không? Ý tưởng tốt cho các mặt nạ, có thể làm việc tốt với ý tưởng của kingjeffrey ở trên cho phần div lại kích thước. – loriensleafs

5

Live Demo

Dưới đây là triển khai thực tế những gì bạn mô tả. Tôi viết lại mã của bạn một chút bằng cách sử dụng các phương pháp hay nhất mới nhất để hiện thực hóa. Nếu bạn thay đổi kích thước cửa sổ trình duyệt của mình dưới 1000px, bên trái và bên phải của hình ảnh sẽ được cắt bằng cách sử dụng lề tiêu cực và nó sẽ là 300px hẹp hơn. đơn vị

<style> 
    .container { 
     position: relative; 
     width: 100%; 
    } 

    .bg { 
     position:relative; 
     z-index: 1; 
     height: 100%; 
     min-width: 1000px; 
     max-width: 1500px; 
     margin: 0 auto; 
    } 

    .nebula { 
     width: 100%; 
    } 

    @media screen and (max-width: 1000px) { 
     .nebula { 
     width: 100%; 
     overflow: hidden; 
     margin: 0 -150px 0 -150px; 
     } 
    } 
</style> 

<div class="container"> 
    <div class="bg"> 
     <img src="http://i.stack.imgur.com/tFshX.jpg" class="nebula"> 
    </div> 
</div> 
54

Viewport cho CSS

vw, vh 1vw = 1% of viewport width 1vh = 1% of viewport height

Bằng cách này, bạn không cần phải viết nhiều khác nhau truy vấn phương tiện truyền thông hoặc javascript. Chỉ cần lưu ý cho người mới đến.

Nếu bạn thích JS

window.innerWidth; window.innerHeight;

+0

FYI, 'vw',' vh' không được hỗ trợ Kunal

+0

@Ký cảm ơn. Nó cũng không được hỗ trợ trên la bàn. – atilkan

+2

(ít nhất là trong Chrome) đây không phải là tỷ lệ phần trăm của chiều rộng * cửa sổ *, nhưng chiều rộng * màn hình *. Windows được thay đổi kích cỡ. Kích thước màn hình của bạn vẫn tĩnh ... –

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