Làm cách nào để kiểm tra và tinh chỉnh: trước và: sau phần tử giả trong trình duyệt?


91

Tôi đã tạo một số phần tử DOM khá phức tạp với phần tử: sau phần tử giả và tôi muốn có thể kiểm tra và tinh chỉnh chúng trong Trình kiểm tra Chrome hoặc Firebug hoặc tương đương.

Mặc dù tính năng này đã được đề cập trong bài đăng trên blog WebKit / Safari này (ngày 2010), tôi không thể tìm thấy tính năng này trong Chrome hoặc Safari. Chrome ít nhất có các hộp kiểm để kiểm tra: hover,: đã thăm và: trạng thái hoạt động, nhưng: trước và: sau thì không thấy đâu.

Ngoài ra, bài đăng trên blog này (ngày 2009!) Đề cập đến khả năng này tồn tại trong các công cụ dành cho nhà phát triển IE, nhưng tôi hiện đang sử dụng Mac OS, vì vậy điều này không giúp được gì cho tôi. Ngoài ra, IE không phải là trình duyệt mà tôi chủ yếu nhắm đến.

Có cách nào để kiểm tra các yếu tố giả này không?

CHỈNH SỬA: Ngoài sai lầm về việc Firebug không thể kiểm tra các phần tử này, tôi thấy Opera khá tốt trong việc Kiểm tra: trước và: các phần tử ra khỏi hộp.


1
với firebug, bạn có thể kiểm tra kiểu dáng của những phần tử giả đó.
Fabrizio Calderan

@ F.Calderan thế nào? Nó có cập nhật trang nếu tôi sửa đổi chúng không?
majackson

vâng, tôi có thể thay đổi các thuộc tính cho pseudoelements qua firebug 1.9.1 trên Fx11 / MacOS
Fabrizio Calderan

À vâng, tôi cũng thấy vậy. Xin lỗi, tôi đã nhầm các công cụ dành cho nhà phát triển mới, sẵn có của Firefoxes (mà tôi chưa sử dụng trước đây) cho một số loại thiết kế lại Firebug với ít tính năng hơn một cách khó hiểu. Tôi đứng sửa lại;)
majackson

Kiểm tra câu trả lời này để pseudoelements thử nghiệm trong chrome và firefox stackoverflow.com/a/20716179/1868660
Subodh Ghulaxe

Câu trả lời:


61

Trong các công cụ dành cho nhà phát triển của Chrome , các kiểu của phần tử giả sẽ hiển thị trong bảng điều khiển:

Nếu không, bạn cũng có thể nhập dòng sau vào bảng điều khiển JavaScript và kiểm tra CSSStyleDeclarationđối tượng trả về :

getComputedStyle(document.querySelector('html > body'), ':before');

9
Tôi không thấy điều này. Bạn đang kiểm tra yếu tố nào để thấy điều này xuất hiện trong bảng điều khiển? Ngoài ra, bạn đang sử dụng phiên bản Chrome nào?
majackson

@majackson Chrome 18.0 Ubuntu 11.10. Kiểm tra bản trình diễn xnày: jsfiddle.net/2M6JA
Rob W

Tôi thấy kính giả trong bản trình diễn của bạn, nhưng không có trong mã của tôi, điều này khiến tôi nghi ngờ mình đang gặp một vấn đề khác. Trong mọi trường hợp, rõ ràng là bạn đã đúng nên tôi sẽ đánh dấu điều này là đã giải quyết - cảm ơn rất nhiều!
majackson

Nó nối các kiểu: giả không thể được kiểm tra trong một số trường hợp. Kiểm tra nhánh này của @Rob W fiddle: jsfiddle.net/RQsY6 => không thể kiểm tra phần tử giả trên thẻ.
Fabien Quatravaux 20/12/12

1
@FabienQuatravaux Ít nhất trong Chrome 23, tôi thấy div::beforevới content: 'x';- ảnh chụp màn hình: i.stack.imgur.com/nQ2TZ.png . CHỈNH SỬA: Các trò chơi của chúng tôi không khác nhau chút nào. Bạn có muốn thay thế divbằng a? Tuy nhiên, phần tử giả vẫn có thể được kiểm tra: jsfiddle.net/RQsY6/1 (chỉ cần chọn thẻ liên kết trong cây DOM).
Rob W

31

Kể từ Chrome, 31 phần tử giả hiển thị trong bảng phần tử dưới dạng phần tử con của phần tử gốc của chúng như được hiển thị trong hình ảnh sau:

Ảnh chụp màn hình

Bạn có thể chọn chúng như cách bạn làm với một phần tử bình thường nhưng nếu bạn xóa contentkiểu thì phần tử giả cũng sẽ bị xóa và tiêu điểm của devtools sẽ thay đổi thành phần tử gốc.

Có vẻ như các kiểu CSS kế thừa không thể xem được và bạn không thể chỉnh sửa nội dung CSS từ bảng phần tử.


1
TÂT NHIÊN!! Cảm ơn bạn :)
R Claven

22

Chrome sẽ không hiển thị: trước và: sau các phần tử giả trong cây DOM, nếu chúng bỏ sót thuộc tính "content". Nó nên được đặt, ngay cả khi nó được đặt thành không.

Điều này sẽ không hiển thị:

:after {
  background-color: red;
}

Điều này sẽ hiển thị trong thanh tra:

:after {
  content: "";   
  background-color: red;    
}

Hy vọng nó giúp.


5

Sau rất nhiều thất vọng, tôi đã tìm ra rằng firefox không hiển thị các yếu tố giả trong cây tài liệu ở tất cả , nhưng nếu bạn chọn chính xác các yếu tố trong đó có yếu tố giả (s) được xác định, sau đó phong cách cho các phần tử giả của nó (s ) được hiển thị trong phần quy tắc kiểu ở phía bên phải. Điều này đúng với cả firebug và thanh tra tích hợp ("Q"), và tôi rất ngạc nhiên vì không ai buồn giải thích rõ ràng điều này trước đây.

Rõ ràng, khả năng xử lý các phần tử giả của chrome / chromium vượt trội hơn hẳn, vì chúng có thể được chọn (cả trong cây tài liệu và trực tiếp trên trang) và được kiểm tra giống như các phần tử thông thường, với bố cục, thuộc tính và mọi thứ khác, độc lập với "chủ sở hữu của chúng ".

Phiên bản trình duyệt hiện tôi đang sử dụng: Chromium 40.0.2214.91, Firefox 31.3.0.


1

Firefox đã có tính năng này một thời gian, chỉ cần nhấp chuột phải, "kiểm tra phần tử" và xem các phần tử trước và sau trong bảng điều khiển bên phải của trình kiểm tra.


1
Tôi không nhìn thấy :after:beforegiả yếu tố trong "mẹ đẻ" công cụ thanh tra - chuyển đổi qua lại các yếu tố giả mang lại cho tôi hover, activefocuschỉ. Tôi có thể thấy chúng trong Firebug.
cùng

@sameers Bạn đang nói về các nút chuyển đổi trên menu chuột phải? Bởi vì: before và: after không phải là thứ bạn bật tắt ở đó, chúng sẽ luôn hiển thị trong trình kiểm tra css.
NoBugs

0

Chọn Phần tử -> chọn di chuột đã kiểm tra ---> bạn có thể thấy :: phần tử trước và sau Chọn Phần tử -> chọn di chuột đã kiểm tra ---> bạn có thể thấy :: phần tử trước và sau


0

Ít nhất vì Chrome 62 có một cài đặt trong DevTools thành 'Hiển thị DOM bóng tác nhân người dùng', hiển thị các phần tử giả bổ sung như trình giữ chỗ đầu vào , nếu không sẽ hiển thị trong cây DOM.

Thông tin thêm: https://stackoverflow.com/a/26853319/3963594

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.