2014-12-10 22 views
5

Look mã này rất đơn giảnChọn văn bản trong :: trước hoặc sau :: giả yếu tố

<!DOCTYPE html> 
<html> 
<head> 
<style> 
p::before { 
    content: "Before - "; 
} 
</style> 
</head> 
<body> 
<p>Hello</p> 
<p>Bye</p> 
</body> 
</html> 

Css thêm ¨Before -" vào lúc bắt đầu của mỗi <P> và làm cho như thế này

enter image description here

Nếu bạn sử dụng chuột để chọn văn bản (để dán bản sao), bạn có thể chọn văn bản gốc, nhưng không chọn văn bản Trước hoặc Aftter do css thêm vào.

enter image description here

Tôi có một yêu cầu rất cụ thể nơi tôi cần phải cho phép người dùng lựa chọn với mosue văn bản Trước. Bạn sẽ làm điều này như thế nào?

+0

Không, bạn không thể. Đó là cụm từ "giả" có nghĩa là gì. – Leo

+1

Đã hỏi và trả lời, nhiều lần. Xem [Có thể chọn nội dung do css tạo không?] (Http://stackoverflow.com/questions/24385171/is-it-possible-to-select-css-generated-content) –

Trả lời

4

Bạn không thể, trước và sau các lớp giả không được sử dụng cho mục đích đó.

1

Nếu người dùng cần chọn văn bản được tạo, nó sẽ được coi là nội dung (và trong HTML), không phải là bản trình bày (và ẩn trong CSS).

Không sử dụng ::before hoặc ::after, sử dụng HTML.

Bạn có thể sử dụng JavaScript để chèn nó (nếu mà có thể giúp):

var text = document.createTextNode('Before - '); 
Array.prototype.forEach.call(document.getElementsByTagName('p'), function (p) { 
    p.insertBefore(text.cloneNode(), p.firstChild); 
}); 

Bằng cách này, văn bản chính nó là hiện diện trong DOM, không giống như nội dung được tạo ra từ CSS.

+0

Đáng buồn là tôi cần từ bên ngoài DOM . Nếu có trong HTML, nó sẽ phá vỡ một tính năng khác của trang web. –

+2

Gọi một cái gì đó mà phá vỡ nếu một số từ có mặt trong DOM một "tính năng" đang được khá hào phóng. –

4

Là một hack, nếu bạn cần sao chép/dán các phần tử giả, bạn có thể xuất trang sang PDF và sao chép từ đó sang PDF. Trong Chrome, ví dụ: bạn có thể sao chép nội dung của trang từ bản xem trước bản in.

+0

Giải pháp thông minh! –

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