欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

如何用CSS替換文本?

榮姿康2年前8瀏覽0評論

我如何使用這樣的方法用CSS替換文本:

.pvw-title img[src*="IKON.img"] { visibility:hidden; }

而不是(img

之后:

enter image description here

觀看http://jsfiddle.net/ZBj2m/274/的現場演示:

這是我們的綠色按鈕:

<button>Hello</button>

button {
  background-color: green;
  color: black;
  padding: 5px;
}

現在讓我們隱藏原始元素,但之后添加另一個block元素:

button {
  visibility: hidden;
}
button:after {
  content:'goodbye'; 
  visibility: visible;
  display: block;
  position: absolute;
  background-color: red;
  padding: 5px;
  top: 2px;
}

注意:

我們明確需要將它標記為塊元素,默認情況下,“after”元素是內聯的 我們需要通過調整偽元素的位置來補償原始元素。 我們必須隱藏原始元素,并使用可見性顯示偽元素。注釋顯示:原始元素上無不起作用。 如果您愿意使用偽元素并讓它們插入內容,您可以執行以下操作。它不需要了解原始元素,也不需要額外的標記。

.element {
  text-indent: -9999px;
  line-height: 0; /* Collapse the original line */
}

.element::after {
  content: "New text";
  text-indent: 0;
  display: block;
  line-height: initial; /* New content takes up original line height */
}

jsdild示例

基于 mikemaccana的回答, 這對我很有效

button {
  position: absolute;
  visibility: hidden;
}

button:before {
  content: "goodbye";
  visibility: visible;
}

<button>original</button>

這是簡單、簡短且有效的方法。不需要額外的HTML。

.pvw-title { color: transparent; }

.pvw-title:after {
        content: "New Text To Replace Old";
        color: black; /* set color to original text color */
        margin-left: -30px;
        /* margin-left equals length of text we're replacing */
    }

對于WooCommerce breadcrumbs,我不得不這樣做來替換鏈接文本,而不是主頁

薩斯/萊斯

body.woocommerce .woocommerce-breadcrumb > a[href$="/shop/"] {
    color: transparent;
    &:after {
        content: "Store";
        color: grey;
        margin-left: -30px;
    }
}

半鑄鋼?鋼性鑄鐵(Cast Semi-Steel)

body.woocommerce .woocommerce-breadcrumb > a[href$="/shop/"] {
    color: transparent;
}

body.woocommerce .woocommerce-breadcrumb > a[href$="/shop/"]&:after {
    content: "Store";
    color: @child-color-grey;
    margin-left: -30px;
}

為了使用after并隱藏原來的內容,你可以使用這個hack:

.pvw-title {
  font-size: 0;
}
.pvw-title:after {
  font-size: 1rem;
  content: 'I am a totally different piece of text!';
}

<div class="pvw-title">Facts</div>

你不能,嗯,你可以。

.pvw-title:after {
  content: "Test";
}

這將在元素的當前內容之后插入內容。它實際上不會替換它,但是您可以選擇一個空的div,并使用CSS添加所有內容。

但是,雖然你或多或少可以,你不應該。實際內容應該放在文檔中。content屬性主要用于小的標記,如應該出現引號的文本周圍的引號。

嘗試使用:before和:after。一個在HTML呈現后插入文本,另一個在HTML呈現前插入。如果要替換文本,請將按鈕內容留空。

本示例根據屏幕寬度的大小設置按鈕文本。

<meta name="viewport" content="width=device-width, initial-scale=1">

<style>
  button:before {
    content: 'small screen';
  }
  @media screen and (min-width: 480px) {
    button:before {
      content: 'big screen';
    }
  }
</style>
<body>
  <button type="button">xxx</button>
  <button type="button"></button>
</body>

按鈕文本:

與:之前

大屏幕xxx

寬屏幕

與:之后

xxx大屏幕

寬屏幕

我發現的最簡單的方法是使元素font-size: 0px,然后在創建:after pseudo時用任何字體大小覆蓋它。下面的例子:

.pvw-title { 
    font-size:0px;
}

.pvw-title:after {
        content: "Hello";
        font-size:15px !important;
}

我比較幸運地將外部元素的font-size: 0和:after選擇器的font-size設置為我需要的值。

如果你只是想顯示不同的文本或圖像,保持標簽為空,并在多個數據屬性中寫入你的內容,就像這樣& ltspan data-text 1 = " Hello " data-text 2 = " Bye " & gt;& lt/span>。。 使用偽類之一顯示它們:before { content:attr(data-text 1)}

現在你有一堆不同的方法在它們之間切換。我把它們和媒體查詢結合起來,用一種響應性的設計方法把導航的名字改成圖標。

jsfiddle演示和示例

它可能無法完美地回答這個問題,但它滿足了我的需求,或許也滿足了其他人的需求。

超文本標記語言

<p class="replaced">Original Text</p>

半鑄鋼?鋼性鑄鐵(Cast Semi-Steel)

.replaced {
    visibility: hidden;
    position: relative;
}

.replaced:after {
    visibility: visible;
    position: absolute;
    top: 0;
    left: 0;
    content: "This text replaces the original.";
}

這種方法對我的內聯文本有效。它在Firefox、Safari、Chrome和Opera上進行了測試。

<p>Lorem ipsum dolor sit amet, consectetur <span>Some Text</span> adipiscing elit.</p>

span {
    visibility: hidden;
    word-spacing: -999px;
    letter-spacing: -999px;
}

span:after {
    content: "goodbye";
    visibility: visible;
    word-spacing: normal;
    letter-spacing: normal;
}

我用這一招:

.pvw-title {
    text-indent: -999px;
}
.pvw-title:after {
    text-indent: 0px;
    float: left;
    content: 'My New Content';
}

我甚至通過改變一個基類來處理頁面的國際化...

.translate-es .welcome {
    text-indent: -999px;
}
.translate-es .welcome:after {
    text-indent: 0px;
    float: left;
    content: '?Bienvenidos!';
}

試試這個方法:

IDENTIFIER {
    visibility: hidden;
    position: relative;
}
IDENTIFIER::after {
    visibility: visible;
    position: absolute;
    top: 0;
    left: 0;
    content: "NEW_CONTENT";
}

這實現了一個復選框作為按鈕,根據它的“選中”狀態顯示“是”或“否”。因此,它演示了一種使用CSS替換文本的方法,而無需編寫任何代碼。

就返回(或不返回)帖子值而言,它的行為仍然像一個復選框,但從顯示的角度來看,它看起來像一個切換按鈕。

這些顏色可能不合你的口味,它們只是用來說明一點。

HTML是:

<input type="checkbox" class="yesno" id="testcb" /><label for="testcb"><span></span></label>

...CSS是:

/* --------------------------------- */
/* Make the checkbox non-displayable */
/* --------------------------------- */
input[type="checkbox"].yesno {
    display:none;
}
/* --------------------------------- */
/* Set the associated label <span>   */
/* the way you want it to look.      */
/* --------------------------------- */
input[type="checkbox"].yesno+label span {
    display:inline-block;
    width:80px;
    height:30px;
    text-align:center;
    vertical-align:middle;
    color:#800000;
    background-color:white;
    border-style:solid;
    border-width:1px;
    border-color:black;
    cursor:pointer;
}
/* --------------------------------- */
/* By default the content after the  */
/* the label <span> is "No"          */
/* --------------------------------- */
input[type="checkbox"].yesno+label span:after {
    content:"No";
}
/* --------------------------------- */
/* When the box is checked the       */
/* content after the label <span>    */
/* is "Yes" (which replaces any      */
/* existing content).                */
/* When the box becomes unchecked the*/
/* content reverts to the way it was.*/
/* --------------------------------- */
input[type="checkbox"].yesno:checked+label span:after {
    content:"Yes";
}
/* --------------------------------- */
/* When the box is checked the       */
/* label <span> looks like this      */
/* (which replaces any existing)     */
/* When the box becomes unchecked the*/
/* layout reverts to the way it was. */
/* --------------------------------- */
input[type="checkbox"].yesno:checked+label span {
    color:green;
    background-color:#C8C8C8;
}

我只在Firefox上試過,但它是標準的CSS,所以它應該在其他地方也能工作。

使用偽元素,這種方法不需要了解原始元素,也不需要任何額外的標記。

#someElement{
    color: transparent; /* You may need to change this color */
    position: relative;
}
#someElement:after { /* Or use :before if that tickles your fancy */
    content: "New text";
    color: initial;
    position: absolute;
    top: 0;
    left: 0;
}

我找到了一個這樣的解決方案,在一個更小的屏幕寬度上,單詞“Dark”將被縮短為“D”。基本上,您只需將原始內容的字體大小設為0,并將縮寫形式作為偽元素。

在本例中,更改發生在懸停時:

span {
  font-size: 12px;
}

span:after {
  display: none;
  font-size: 12px;
  content: 'D';
  color: red;
}

span:hover {
  font-size: 0px;
}

span:hover:after {
  display: inline;
}

<span>Dark</span>

我遇到了一個問題,我必須替換鏈接的文本,但我不能使用JavaScript,也不能直接更改超鏈接的文本,因為它是從XML編譯下來的。此外,我不能使用偽元素,或者當我嘗試過它們時,它們似乎不起作用。

基本上,我把我想要的文本放入一個span中,并把anchor標簽放在它下面,然后把兩者都包裝在一個div中。我基本上是通過CSS將錨標記上移,然后使字體透明。現在,當您將鼠標懸停在跨度上時,它“表現”像一個鏈接。這是一個非常不成熟的方法,但是這就是你如何鏈接不同的文本...

這是我如何繞過這個問題的一把小提琴

我的HTML

<div class="field">
    <span>This is your link text</span><br/>
    <a  target="_blank">This is your actual link</a>
</div>

我的CSS

div.field a {
     color: transparent;
     position: absolute;
     top:1%;
 }
 div.field span {
     display: inline-block;
 }

CSS將需要根據您的要求進行更改,但這是您所要求的一種通用方式。

八年后,當我試圖使用時尚的瀏覽器擴展來改變一個網站(不是我的)上的東西時,我面臨了同樣的挑戰。這一次,我使用“inspect element”查看源代碼,并在此基礎上創建了CSS代碼。

這是它以前的樣子:

<table>
  <tbody>
    <tr>
      <td role="gridcell">
        <span title="In progress" style="background-color: #e2047a;color:White;margin:2px;border-radius:2px;padding-left: 2px; padding-right: 2px;text-align: center;width: 45px; display: block;overflow: hidden;text-overflow: ellipsis;">In progress</span>
      </td>
    </tr>
  </tbody>
</table>

與我在其他每個答案中看到的不同,您不需要使用偽元素來用圖像替換標簽的內容

<div class="pvw-title">Facts</div>

    div.pvw-title { /* No :after or :before required */
        content: url("your URL here");
    }

正如許多人所說,這是一次黑客攻擊。然而,我想添加更多的最新黑客,利用flexbox和rem的優勢,即

您不希望手動定位要更改的文本,這就是您希望利用flexbox的原因 您不希望使用px顯式地對文本使用填充和/或邊距,這對于不同設備和瀏覽器上的不同屏幕大小可能會產生不同的輸出 下面是解決方案,簡而言之,flexbox確保它自動完美定位,rem是更標準化(和自動化)的像素替代方案。

CodeSandbox下面有代碼,并以截圖的形式輸出,請務必閱讀代碼下面的說明!

h1 {
  background-color: green;
  color: black;
  text-align: center;
  visibility: hidden;
}
h1:after {
  background-color: silver;
  color: yellow;
  content: "This is my great text AFTER";
  display: flex;
  justify-content: center;
  margin-top: -2.3rem;
  visibility: visible;
}
h1:before {
  color: blue;
  content: "However, this is a longer text to show this example BEFORE";
  display: flex;
  justify-content: center;
  margin-bottom: -2.3rem;
  visibility: visible;
}

注意:對于不同的標簽,你可能需要不同的rem值,這個值只適用于h1和大屏幕。然而,通過@media,你可以很容易地將它擴展到移動設備上。

A hack how to replace HTML text using CSS

例子

<!DOCTYPE html>
<html> 
<head> 
   <title>Devnote</title>
    <style>
        .replacedValue { 
            visibility: hidden; 
            position: relative; 
        } 
        .replacedValue:after { 
            visibility: visible; 
            position: absolute; 
            top: 0; 
            left: 0; 
            content: "Devnote is developer answer solve. devnote.in"; 
        } 
    </style> 
</head>
<body> 
    <p class="replacedValue">Old Text Here</p>
</body> 
</html>

輸出

Devnote is developer answer solve. devnote.in

沒有技巧這是不可能的。這是一種用文本圖像替換文本的方法。

.pvw-title{
    text-indent: -9999px;
    background-image: url(text_image.png)
}

這類事情通常是用JavaScript完成的。下面是如何使用jQuery實現這一點:

$('.pvw-title').text('new text');

實現這一點的方法是給CSS內容添加行高。這將使塊被隱藏,從而不會隱藏更改的文本。

使用before的示例:

.pvw-title span {
  display: none;
}

.pvw-title:before {
  content: 'Whatever it is you want to add';
  line-height: 1.5em
}

將原始元素的行高和字體大小設置為0px(然后將:after pseudo元素的字體大小設置為),這是唯一對我有效的方法,不會弄亂元素容器和周圍元素的間距/格式/填充。

#test {
  font-size: 0px;
  line-height: 0px;
}

#test:after {
  font-size: 12px;
  content: 'Good Bye';
}

<span id="test">Hello</span>