Chỉ hiện/ẩn div CSS

Đây là ví dụ mã có thể được sử dụng để hiển thị div khi hộp kiểm được chọn và ẩn div khi hộp kiểm không được chọn. Chúng tôi đang triển khai chức năng này chỉ bằng CSS

Sao chép mã ____0

Mã CSS có thể được sử dụng để hiển thị/ẩn div khi chọn/bỏ chọn hộp kiểm. chúng tôi đang sử dụng lớp giả. đã chọn được áp dụng trên hộp kiểm để kiểm tra xem hộp kiểm có được chọn hay không và sử dụng + từ khóa, chúng tôi đang chọn phần tử HTML tiếp theo của hộp kiểm loại đầu vào là div

Tôi đã xem qua trang này. http. //photoshopworld. com/schedule/ trong đó khi nhấp vào tiêu đề của một lớp (in đậm), mô tả trong div sẽ hiển thị. Nếu nhấp lại, mô tả sẽ bị ẩn. Với javascript, điều này rất dễ thực hiện. Nhưng tôi không thấy bất kỳ chức năng javascript nào được gọi khi xem nguồn trang. Chức năng ẩn/hiển thị dường như chỉ được thực hiện bằng css. Có ai biết làm thế nào điều này được thực hiện?

ngày 7 tháng 9 năm 2011 lúc 3. 21 giờ tối #86615

Chỉ hiện/ẩn div CSS
chrisburton

người tham gia

Điều gì về nút xuyên tâm mà Chris đã làm để chuyển đổi các tab?

ngày 8 tháng 9 năm 2011 lúc 1. 34 giờ chiều #86687

Chỉ hiện/ẩn div CSS
tomz

Hội viên

Wolfcry & Paulie,

Bạn đúng là có rất nhiều javascript trên trang này. Tắt javascript bấm vào tiêu đề không hiện mô tả nữa. Có vẻ như javascript cung cấp tính năng này. Tuy nhiên, nếu bạn xem mã nguồn html như ví dụ bên dưới

Mở đăng ký hội thảo trước hội nghị

Hội thảo trước hội nghị tùy chọn
Phải là người tham dự Photoshop World đã đăng ký để tham gia. Yêu cầu đăng ký và lệ phí riêng biệt.

không có sự kiện javascript onclick nào được liên kết với tiêu đề “Đăng ký hội thảo trước hội nghị”. Đó là lý do tại sao ban đầu tôi nghĩ css cung cấp tính năng nhấp để hiển thị mô tả. Bạn có biết làm thế nào điều này được thực hiện?

Cảm ơn,
Tom

ngày 8 tháng 9 năm 2011 lúc 9. 47 giờ chiều #86726

Chỉ hiện/ẩn div CSS
thomas

Hội viên

Bạn có thể làm điều gì đó tương tự bằng cách sử dụng. tiêu điểm

http. //jsfiddle. ròng/ce6Fe/

Nó sẽ không ẩn cho đến khi bạn nhấp chuột, nhưng nó hoạt động mà không cần JavaScript. Tất nhiên, các phần tử cấp khối không hợp lệ trong phần tử neo, trừ khi bạn đang sử dụng HTML 5

Mỗi phần tử HTML có một giá trị hiển thị mặc định tùy thuộc vào loại phần tử đó là gì. Giá trị hiển thị mặc định cho hầu hết các phần tử là block hoặc

.expando {
  display: none;
}
.expando:target {
  display: block;
}
0

Nhấp để hiển thị bảng điều khiển

Bảng điều khiển này chứa một

phần tử, được ẩn theo mặc định (

.expando {
  display: none;
}
.expando:target {
  display: block;
}
1)

Nó được tạo kiểu bằng CSS và chúng tôi sử dụng JavaScript để hiển thị nó (đổi nó thành (

.expando {
  display: none;
}
.expando:target {
  display: block;
}
2)


Phần tử cấp khối

Phần tử cấp khối luôn bắt đầu trên một dòng mới và chiếm toàn bộ chiều rộng có sẵn (kéo dài sang trái và phải hết mức có thể)

Các

phần tử là phần tử cấp khối

Ví dụ về các phần tử cấp khối

  • -

Yếu tố nội tuyến

Phần tử nội tuyến không bắt đầu trên một dòng mới và chỉ chiếm nhiều chiều rộng khi cần thiết

Đây là phần tử nội tuyến bên trong một đoạn văn.

Ví dụ về các yếu tố nội tuyến


Trưng bày. không ai;

.expando {
  display: none;
}
.expando:target {
  display: block;
}
3 thường được sử dụng với JavaScript để ẩn và hiển thị các phần tử mà không xóa và tạo lại chúng. Hãy xem ví dụ cuối cùng của chúng tôi trên trang này nếu bạn muốn biết làm thế nào để đạt được điều này

Có nhiều cách để ẩn và hiện nội dung bằng một cú nhấp chuột (hoặc chạm hoặc chọc hoặc nhấn phím hoặc…). Nhiều người trong số họ có JavaScript ẩn bên trong và gần như tất cả họ đều phụ thuộc vào thư viện và/hoặc CDN của bên thứ ba. Điều này có thể ổn khi bạn đã phải tải một đống tập lệnh trên một trang. Điều này cũng có thể dẫn đến thực tiễn phát triển kém

Bạn có thể giảm thiểu lỗi JavaScript đó bằng một chút cải tiến lũy tiến chỉ dành cho CSS. Nếu bạn dựa vào bộ chọn

.expando {
  display: none;
}
.expando:target {
  display: block;
}
4, bạn chỉ cần hai dòng CSS cho tính năng hiển thị/ẩn cơ bản nhất

.expando {
  display: none;
}
.expando:target {
  display: block;
}

Tôi đã làm một mẫu để hiển thị nó trong thực tế

Xem Pen Show/Hide Script-Free của Adrian Roselli (@aardrian) trên CodePen

Hỗ trợ các trình duyệt cũ không biết phải làm gì với

.expando {
  display: none;
}
.expando:target {
  display: block;
}
4 có thể đơn giản như gói CSS trong truy vấn phương tiện hoặc sử dụng nhận xét có điều kiện (đối với Internet Explorer cũ)

Từ đây, bạn có thể tạo lớp cho tất cả các hiệu ứng hoạt hình JavaScript tiện lợi, các ràng buộc chính, v.v.

Điều gì đã thúc đẩy bài đăng này?

Tôi đã ở W3C để tìm kiếm tất cả các thông số kỹ thuật liên quan đến khả năng truy cập. Tôi đã xem danh sách các nhóm thông số kỹ thuật, thấy dòng chữ màu xanh nghĩa là tôi có thể nhấp vào (phần gạch dưới được áp dụng không nhất quán, vì vậy chúng không phải là đầu mối nhất quán) và điều gì đó sẽ xảy ra, nhưng không thể đi đến đâu

Một nguồn xem nhanh cho tôi thấy rằng đó không phải là liên kết hay nút (không có

.expando {
  display: none;
}
.expando:target {
  display: block;
}
6 và không có
.expando {
  display: none;
}
.expando:target {
  display: block;
}
7). Kiểm tra bảng điều khiển tôi thấy lỗi sau.
.expando {
  display: none;
}
.expando:target {
  display: block;
}
8

Tập lệnh bị lỗi và do

.expando {
  display: none;
}
.expando:target {
  display: block;
}
6 được thêm vào sau khi trang được phân phát, nên lỗi đã ngăn không cho thêm bất kỳ điều khiển nào, khiến nội dung tôi muốn không có sẵn. HTML thô trông như thế này

Accessibility (All)

Tôi đã chụp một ảnh chụp màn hình cho thấy (những gì tôi nghĩ) là tất cả các thông tin liên quan

Chỉ hiện/ẩn div CSS
Ảnh chụp màn hình của W3C với các công cụ dành cho nhà phát triển hiển thị DOM và lỗi tập lệnh

Trang được thiết lập để hiển thị tất cả nội dung được mở rộng nếu không có hỗ trợ JavaScript. Đó là một phương pháp hay để hỗ trợ những người dùng không thể lấy tập lệnh (kết nối kém, tường lửa, v.v. )

Sau đó, kịch bản xuất hiện và thu gọn tất cả nội dung và thêm các

.expando {
  display: none;
}
.expando:target {
  display: block;
}
6 để làm cho tất cả hoạt động. Thật không may, nếu tập lệnh bị hỏng sau khi nó thu gọn nội dung nhưng trước khi các liên kết được thêm vào thì người dùng sẽ gặp khó khăn. Việc thêm phía máy chủ của
.expando {
  display: none;
}
.expando:target {
  display: block;
}
6s có thể giảm thiểu điều đó, giảm các tình huống khiến trang bị ngắt

Tôi muốn công bằng với những người ở W3C, những người đã xây dựng cái này. Không ai có thể tái tạo vấn đề này. Tôi không thể sao chép nó trên bất kỳ trình duyệt nào khác (cho đến nay) ngoài Chrome và nó hoạt động bình thường nếu tôi truy cập trang ở chế độ ẩn danh. Tuy nhiên, nếu tôi tắt tất cả các tiện ích mở rộng của Chrome, trang vẫn bị hỏng. Tôi chỉ chưa tìm ra phần nào trong cấu hình của mình đã phá vỡ nó

Thông tin thêm về Nâng cao lũy tiến

  • Hiểu về Nâng cao lũy tiến
  • Tăng cường tiến bộ. Quá khứ, hiện tại và tương lai
  • Cải tiến lũy tiến không phải là về tính khả dụng của JavaScript

Thẻ

khả năng truy cập css JavaScript mô hình khả năng sử dụng UX

Bài viết khác

Bài trước. CSS và phông chữ hệ thống

Bài đăng gần đây hơn. Mục508. gov tương tự như Phần 508 Làm mới

12 Bình luận

Hồi đáp

Đẹp. nhưng có một tùy chọn để thêm chức năng xóa tùy chọn cuối cùng được chọn giống như lựa chọn kết hợp?
Cảm ơn

Carlos; . 44 giờ sáng. liên kết cố định

Đáp lại Carlos. Hồi đáp

Carlos, không có - ít nhất là không có liên kết neo khác. Khi URL không còn tham chiếu ký tự neo (thông qua #foo), thì sẽ không có gì là mục tiêu và bộ chọn CSS sẽ không áp dụng. Đây thực sự chỉ là một ví dụ rất cơ bản để thể hiện khả năng

Adrian Roselli; . 51 giờ sáng. liên kết cố định

Hồi đáp

và có thể kết hợp ví dụ này với ví dụ của bạn không?
http. // codepen. io/vkjgr/pen/VYMeXp
Cảm ơn sự giúp đỡ của bạn Adrian

Carlos; . 06 giờ sáng. liên kết cố định

Đáp lại Carlos. Hồi đáp

Sắp xếp. Đó là các menu của

Accessibility (All)

1, vì vậy chúng không liên quan gì đến ví dụ của tôi cả. Bạn có thể sử dụng menu chọn để tải trang tại một điểm neo cụ thể, nhưng sau đó bạn đang sử dụng một biểu mẫu để điều hướng và điều đó thường không được chấp nhận. Bạn cũng có thể định kiểu lại ví dụ của tôi để trông giống như các menu đó, nhưng điều đó cũng gợi ý cho người dùng rằng về mặt chức năng, chúng sẽ hoạt động giống như thành phần biểu mẫu (chẳng hạn như hỗ trợ cho các phím mũi tên)

Adrian Roselli; . 16 giờ sáng. liên kết cố định

Hồi đáp

Cái này khá tiện lợi và đơn giản. Nhắm mục tiêu ID sẽ cuộn trang đến phần tử đó, có cách nào để tránh cuộn không?

Tôi muốn tránh cuộn trang đến câu trả lời (lựa chọn của bạn) khi nó được chọn. Bất kỳ suy nghĩ về điều này?

Cảm ơn

Craig W; . 07 giờ tối. liên kết cố định

Trả lời Craig W. Hồi đáp

Tôi không thể nghĩ ra một lựa chọn nào trong đầu mà không liên quan đến một số kịch bản. Tuy nhiên, vì tôi coi hiệu ứng cuộn là một tính năng và là một tính năng mà tôi không muốn tắt nên đây có thể không phải là lựa chọn tốt nhất cho bạn

Bạn có thể chỉ muốn sử dụng một phần tử

Accessibility (All)

2 với một chức năng đơn giản để bật/tắt một

Accessibility (All)

3. Sau đó, sử dụng bộ chọn anh chị em liền kề cho bất kỳ nút nào có lớp đó và hiển thị nội dung

FWIW, tôi vẫn không thích ẩn nội dung cho đến khi người dùng tương tác với nội dung đó khi nội dung đó đã có trên trang, nhưng tôi không biết ứng dụng của bạn

Adrian Roselli; . 28 giờ chiều. liên kết cố định

Hồi đáp

Có cách nào để ẩn lại không?

Áng; . 37 giờ sáng. liên kết cố định

Đáp lại Ang. Hồi đáp

Không. Không phải không điều hướng đến một neo khác hoặc xóa neo khỏi URL. Cách tiếp cận này gần như không mạnh mẽ như

Accessibility (All)

4/

Accessibility (All)

5, phương pháp này sẽ yêu cầu một polyfill cho IE và Edge

Adrian Roselli; . 22 giờ sáng. liên kết cố định

Đáp lại Adrian Roselli. Hồi đáp

Điều này dường như hoạt động để ẩn lại

________số 8

Tôi có thiếu thứ gì không?

JJ; . 25 giờ chiều. liên kết cố định

Đáp lại JJ. Hồi đáp

Chà, trình xác nhận không chùn bước. Vì vậy, có lẽ yeah?

Adrian Roselli; . 52 giờ chiều. liên kết cố định

Đáp lại Adrian Roselli. Hồi đáp

Đây là những gì tôi đã cố gắng thể hiện

https. // codepen. io/j8j8/bút/rNOoMbR

CodePen hơi rắc rối với thuộc tính href trống, nhưng href trống hợp lệ trong HTML5 và điều này có vẻ hoạt động khác