Có thể tạo hiệu ứng chuyển tiếp giữa trạng thái mở/đóng của phần tử <details>
chỉ với CSS không?Chuyển đổi giữa phần đóng mở chi tiết thành phần
Trả lời
Không, hiện tại không. Có, nhưng chỉ khi bạn biết height
hoặc có thể tạo hiệu ứng động font-size
.
Ban đầu, đây không phải là trường hợp. Từ http://html5doctor.com/the-details-and-summary-elements/, "... nếu bạn có thể sử dụng chuyển tiếp CSS để tạo hiệu ứng mở và đóng, nhưng chúng tôi vẫn chưa thể." (Có một bình luận tại bác sĩ HTML5 gần kết thúc, nhưng có vẻ như yêu cầu JS ép buộc hoạt ảnh CSS.)
Có thể sử dụng các kiểu khác nhau dựa trên việc mở hay đóng. "lấy" bình thường. Tuy nhiên, hôm nay, quá trình chuyển đổi hoạt động nếu bạn biết số height
hoặc có thể tạo hiệu ứng động font-size
. Xem http://codepen.io/morewry/pen/gbJvy để biết ví dụ và biết thêm chi tiết.
Đây là giải pháp 2013 mà loại hàng giả nó:
CSS (Có thể cần phải thêm tiền tố)
/* http://daneden.me/animate/ */
@keyframes fadeInDown {
0% {
opacity: 0;
transform: translateY(-1.25em);
}
100% {
opacity: 1;
transform: translateY(0);
}
}
.details-animated[open] {
animation-name: fadeInDown;
animation-duration: 0.5s;
}
HTML
<details class="details-animated">
<summary>CSS Animation - Summary</summary>
Try using [Dan Eden's fadeInDown][1] to maybe fake it a little. Yay, some animation.
</details>
này hoạt động ngày hôm nay:
CSS (Có thể cần phải thêm tiền tố)
.details-animated {
transition: height 1s ease;
}
.details-animated:not([open]) { height: 1.25em; }
.details-animated[open] { height: 3.75em; }
PS: Chỉ thử nghiệm trong Chrome. Nghe FF vẫn không hỗ trợ IE và Edge vẫn không hỗ trợ details
nói chung.details
.
(Bạn có thể sử dụng hoạt ảnh hoặc chuyển tiếp khung hình chính để thực hiện tất cả các loại hoạt ảnh khác để mở. Tôi đã chọn fadeInDown
chỉ nhằm mục đích minh họa. Đây là lựa chọn hợp lý sẽ mang lại cảm giác tương tự nếu bạn không thể thêm đánh dấu hoặc sẽ không biết chiều cao của nội dung. Tùy chọn của bạn, tuy nhiên, không giới hạn ở đây: xem các nhận xét về câu trả lời này bao gồm hai lựa chọn thay thế, bao gồm cách tiếp cận font-size
.)
Đó là một sự xấu hổ nó không hoạt động. BTW Tôi đã sao chép ví dụ của bạn trong một câu chuyện và nó không hoạt động, tôi không thấy bất kỳ thay đổi nào. – olanod
Nó hoạt động cho tôi, nhưng nó sẽ chỉ hoạt động với '-webkit',' -moz' và '-o' (đây là ví dụ về mã giảm). Tôi cũng đã chỉnh sửa nó cho đến bây giờ. Codepen.io có tùy chọn "tiền tố miễn phí" cho CSS - Tôi không nhớ lại nếu JSFiddle làm gì? Xác minh mã mới nhất và có thể muốn thử thêm tiền tố. – morewry
xin lỗi, tôi không kiểm tra các tiền tố. – olanod
Với chiều cao phải chụp một số điểm tôi thích để bắt đầu làm sống động chiều cao và sau đó chụp. Nếu bạn đủ may mắn để có tất cả các yếu tố một chiều cao tương tự, giải pháp này có thể khá hiệu quả. (Bạn cần một div bên trong các yếu tố chi tiết của bạn mặc dù)
@keyframes slideDown {
0% {
opacity: 0;
height: 0;
}
100% {
opacity: 1;
height: 20px; /* height of your smallest content, e.g. one line */
}
}
details {
max-width:400px;
}
details[open]>div {
animation-name: slideDown;
animation-duration: 200ms;
animation-timing-function:ease-in;
overflow:hidden;
}
thấy http://dabblet.com/gist/5866920 ví dụ
trả lời ngắn gọn của tôi là: bạn không thể chuyển giữa tóm tắt và phần còn lại của nội dung chi tiết.
NHƯNG!
Bạn có thể làm một số chuyển thoải mái bên trong bản tóm tắt giữa selector chi tiết và chi tiết [mở]
details{
position: relative;
width: 100px;height: 100px;
perspective: 1000px;
}
div{
position: absolute;
top: 20px;
width: 100px;height: 100px;
background: black;
}
details .transition{
transition: 1s linear;
transform-origin: right top;
;
}
details[open] .transition{
transform: rotateY(180deg);
background: orangered;
}
<details>
<summary>
<div></div>
<div class="transition"></div>
</summary>
</details>
NB: Tôi trả lời này bởi vì nó là người đầu tiên kết quả từ googling về điều này!
Tất nhiên nó có thể:
<style type="text/css">
DETAILS[open] SUMMARY ~ * {
animation: sweep .5s ease-in-out;
}
@keyframes sweep {
0% {opacity: 0; margin-left: -10px}
100% {opacity: 1; margin-left: 0px}
}
</style>
Trong khi mã này có thể trả lời câu hỏi, cung cấp ngữ cảnh bổ sung về cách thức và/hoặc lý do giải thích vấn đề này sẽ cải thiện giá trị lâu dài của câu trả lời. Vui lòng đọc [cách trả lời] này (http://stackoverflow.com/help/how-to-answer) để cung cấp câu trả lời có chất lượng. – thewaywewere
- 1. Chuyển đổi một lớp học thành một phần mở rộng
- 2. lxml chuyển đổi phần tử thành elementtree
- 3. chuyển đổi chi nhánh tại git theo tên một phần
- 4. Tiêu đề C++ - tách biệt giữa chi tiết giao diện và chi tiết triển khai
- 5. Chuyển đổi chuỗi HTML thành thành phần DOM?
- 6. Làm cách nào để vẽ đường viền xung quanh cả phần tiêu đề cột, chân trang và phần chi tiết?
- 7. Chuyển đổi một phần văn bản thành số thập phân
- 8. chuyển đổi opencv từ phần tử Mat thành IplImage *
- 9. UserWarning: chuyển đổi phần tử có mặt nạ thành nan
- 10. Chuyển đổi ô Excel thành phần trăm bằng epplus
- 11. Cách chuyển đổi một phần của mảng char thành chuỗi
- 12. CakePHP Xem thay đổi phần mở rộng
- 13. Flex: Cách thêm nút đóng tab cho thành phần TabNavigator
- 14. Chi phí đặt CSS chuyển tiếp trên tất cả các thành phần
- 15. lỗi chi tiết về fopen
- 16. Phần mở rộng PDO là cần thiết cho bộ chuyển đổi này, nhưng phần mở rộng không được tải
- 17. Chi tiết cột thay đổi Mysql
- 18. Chi tiết thời gian giữa 32bit và 64bit Windows
- 19. Bootstrap đóng mở, hiển thị phần tử đầu tiên
- 20. Chi tiết của AsyncWaitHandle.WaitOne
- 21. Tất cả các chi tiết chung giữa hai chuỗi
- 22. Có một thành phần tiêu chuẩn cho bảng điều khiển đóng mở trong Qt không?
- 23. Thay đổi phần tử lớp thành phần tử giao diện
- 24. Thư viện thành phần JavaFX 2.0 mã nguồn mở
- 25. Có bao nhiêu chi tiết phần cứng có thể khám phá Java Applet?
- 26. Di chuyển thành phần hỗn hợp thành thành phần tùy chỉnh
- 27. Chuyển đổi hiệu quả giữa các vectơ đóng hộp và hộp không có hộp số
- 28. Chi tiết về Endian-ness và .Net?
- 29. Sự khác biệt giữa các thành phần, mô-đun, phần mở rộng và các plugin trong Joomla
- 30. Sự khác biệt giữa Phần mềm Tự do và Phần mềm Mã nguồn Mở
bạn có thể thử tạo hiệu ứng động đỉnh cao của nó – Huangism
Nó không làm việc – olanod