Tôi đang thực hiện một trang đó sẽ chỉ hiển thị một hình ảnh SVG, và đây là những yêu cầu:CSS nền sử dụng "background-kích thước: bìa" không phù hợp với toàn bộ chiều cao
- vector nên lên toàn bộ cửa sổ
- vector nên duy trì tỷ lệ khía cạnh của nó (được định nghĩa trong file SVG chính nó)
- vector nên cắt/clip trong trật tự để ngăn chặn lệch
CSS ...
body {
background: url(/path/to/image.svg);
background-size: cover;
}
... hoạt động hoàn toàn trừ khi cửa sổ trình duyệt trở nên quá hẹp, thay vì cắt xén/cắt bớt.
Dưới đây là một số ảnh chụp màn hình (xin vui lòng bỏ qua những hiện vật còn lại bởi dabblet):
Ở đây cửa sổ là gần với tỉ lệ của ảnh gốc
Ở đây cửa sổ là "ngắn hơn "so với tỷ lệ cỡ ảnh và hình ảnh đang cắt xén (như mong muốn).
Ở đây cửa sổ "hẹp hơn" so với tỷ lệ khung hình, nhưng thay vì cắt xén, hình ảnh bị ốp lát (không mong muốn).
Dưới đây là một vài suy nghĩ rằng tôi đã có ...
- Tôi có thể thay đổi hình ảnh SVG trong một số cách để ngăn chặn điều này xảy ra?
- Tôi có thể đánh dấu/tạo kiểu trang để đạt được kết quả mong muốn không?
- Tôi muốn giữ trong lĩnh vực HTML/CSS, nhưng nếu Javascript là cần thiết, sau đó là như vậy.
Đây là dabblet mà tôi đã làm việc với ... http://dabblet.com/gist/6033198
đẹp câu hỏi.Xấu hổ Tôi không tham gia bình chọn :) – null
ốp lát xảy ra tự động cho hình nền trong css, chỉ cần sử dụng 'background-repeat: no-repeat; ' – Pebbl
@pebbl Bạn nói đúng, lặp lại nền sẽ ngăn không cho vectơ lặp lại, nhưng điều đó không 't sửa chữa thực tế là kích thước y của vectơ không được tính đúng. Hình ảnh phải điền vào kích thước y của cửa sổ. – vals