Cần xóa giá trị href khi in trong Chrome


290

Tôi đang cố gắng tùy chỉnh CSS in và thấy rằng nó in các liên kết với hrefgiá trị cũng như liên kết.

Đây là trong Chrome.

Đối với HTML này:

<a href="http://www.google.com">Google</a>

Nó in:

Google (http://www.google.com)

Và tôi muốn nó được in:

Google

1
Hãy ghi nhớ TẠI SAO mọi khung CSS chính làm điều đó - bạn không thể nhấp vào giấy! Vì vậy, nếu bạn sẽ hủy kích hoạt nó, bạn nên thêm một danh sách các liên kết ở dưới cùng, chẳng hạn như: alistapart.com/article/improvingprint
Julix 23/2/2017

1
Điều đó đúng, nhưng tôi nghĩ sẽ tốt hơn nếu kiểm soát thời gian và nơi liên kết xuất hiện. Chẳng hạn, trong các liên kết của tôi, tôi muốn chúng xuất hiện ở dòng tiếp theo sau văn bản và không có dấu ngoặc đơn. Vì vậy, tôi chỉ hiển thị các url trong văn bản.
dùng4052054

Câu trả lời:


602

Bootstrap cũng làm điều tương tự (... như câu trả lời được chọn bên dưới).

@media print {
  a[href]:after {
    content: " (" attr(href) ")";
  }
}

Chỉ cần xóa nó từ đó hoặc ghi đè lên biểu định kiểu in của riêng bạn:

@media print {
  a[href]:after {
    content: none !important;
  }
}

17
<style>@media print{a[href]:after{content:none}}</style>Chủ yếu là đăng bài cho chính tôi khi tôi tiếp tục quay lại trang này, cảm ơn bạn
William Entriken

1
Rõ ràng Foundation cũng đang lấy mẫu.
spasticninja

Có vẻ như HTML5 Boilerplate cũng làm điều này! Vì vậy, tôi đoán rằng tôi phải ghi đè nó thông qua thay đổi mã trên trang web của riêng tôi và thông qua Thanh tra trên các trang web khác ...
ADTC

Cảnh báo: Chúng tôi đã gặp sự cố khi một bảng đôi khi bị mất một vài hàng cuối cùng khi in. Hóa ra quy tắc này là thủ phạm, hoặc ít nhất là loại bỏ nó đã khắc phục vấn đề. Không biết tại sao nó lại có tác dụng đó.
Henrik N

1
@HenrikN - Tôi nghĩ điều đó có liên quan đến các cột bootstrap nổi. sử dụng float:nonekhi cần thiết đã khắc phục một vấn đề tương tự cho tôi vài tuần trước; có thể giúp bạn, nhưng đó là một vấn đề khác
Andrew

40

Nó không . Ở đâu đó trong biểu định kiểu in của bạn, bạn phải có phần mã này:

a[href]::after {
    content: " (" attr(href) ")"
}

Khả năng duy nhất khác là bạn có một phần mở rộng làm điều đó cho bạn.


1
Tôi đã nhận nó trong css zurb Foundation.
forX


10

Nếu bạn sử dụng CSS sau

<link href="~/Content/common/bootstrap.css" rel="stylesheet" type="text/css"    />
<link href="~/Content/common/bootstrap.min.css" rel="stylesheet" type="text/css" />
<link href="~/Content/common/site.css" rel="stylesheet" type="text/css" />

chỉ cần thay đổi nó thành kiểu sau bằng cách thêm media = "screen"

<link href="~/Content/common/bootstrap.css" rel="stylesheet" **media="screen"** type="text/css" />
<link href="~/Content/common/bootstrap.min.css" rel="stylesheet" **media="screen"** type="text/css" />
<link href="~/Content/common/site.css" rel="stylesheet" **media="screen"** type="text/css" />

Tôi nghĩ rằng nó sẽ làm việc.

các câu trả lời trước đây như

    @media print {
  a[href]:after {
    content: none !important;
  }
}

đã không hoạt động tốt trong trình duyệt chrome.


4

Tôi đã gặp một vấn đề tương tự chỉ với một img lồng nhau trong neo của tôi:

<a href="some/link">
   <img src="some/src">
</a>

Khi tôi áp dụng

@media print {
   a[href]:after {
      content: none !important;
   }
}

Tôi đã mất img và toàn bộ chiều rộng neo vì một số lý do, vì vậy thay vào đó tôi đã sử dụng:

@media print {
   a[href]:after {
      visibility: hidden;
   }
}

mà làm việc hoàn hảo.

Tiền thưởng : kiểm tra bản xem trước in


1

Để ẩn url Trang.

sử dụng media="print"trong ví dụ tage phong cách:

<style type="text/css" media="print">
            @page {
                size: auto;   /* auto is the initial value */
                margin: 0;  /* this affects the margin in the printer settings */
            }
            @page { size: portrait; }
</style>

Nếu bạn muốn xóa liên kết:

@media print {
   a[href]:after {
      visibility: hidden !important;
   }
}

-2

Đối với người dùng bình thường. Mở cửa sổ kiểm tra của trang hiện tại. Và gõ vào:

l = document.getElementsByTagName("a");
for (var i =0; i<l.length; i++) {
    l[i].href = "";
}

Sau đó, bạn sẽ không thấy các liên kết url trong bản xem trước in.


Đây là một giải pháp tốt nếu bạn không kiểm soát được mã nguồn của trang bạn đang cố in.
Paddymac
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.