AnswerBun.com

How can I style specific symbols in an element?

Stack Overflow Asked by Ankit Aggarwal on November 10, 2020

Is it possible to have the quotes in the following HTML bold and red, without altering the HTML code?

<div class="client_message">&ldquo; Ankit &rdquo;</div>

Basically I would like to have some CSS that results in the same effect as
“Ankit” but these quotes must be in bold.

Is this possible with CSS only?

6 Answers

Clearly we can accomplish far more than most are aware of, without almost scripted neglect in our collective knowledge base. As an aside, it would be nice if Stack quotation marks were more legible.

Moving forward, perhaps to cover our bases better, the CSS should look like this.

quotation { color: forestgreen; display: block; }
quote { display: block; quotes: '201C' '201D' '2018' '2019'; }
quote::before, q::before { content: open-quote; }
quote::after, q::after { content: close-quote; }
quote { quotes: '201C' '201D'; }
blockquote { quotes: '"' '"' "'" "'" '"' '"'; } 
blockquote p::before { content: open-quote; } 
blockquote p::after { content: no-close-quote; }

Google finds many people unable to style the simple quotes. Still looking for contraction code: i.e., root’extension possessive single right curly quote styling. Can current DOM handle contraction single right quote without script... what's that trick?

Answered by mark stewart on November 10, 2020

Quotes require ‘possessive’ punctuation. In “[Css The Definitive Guide 4][1]”, pp. 786-788, Eric Meyer describes ‘Generated quotes’.

With quotes, you can define quotation patterns to as many nesting levels as you like. In English, for example, a common practice is to start out with a double quotation mark, and a quotation nested inside the first one gets single quotation marks. This can be recreated with “curly” quotation marks using the following rules:

quotation { color: forestgreen; display: block; }
quote { display: block; quotes: '201C' '201D' '2018' '2019'; }
quote::before, q::before { content: open-quote; }
quote::after, q::after { content: close-quote; }

<quotation>
<quote>
    In the beginning, there was nothing. 
    And God said:
    <q>
        Let there be light!
    </q>
  And <abbr>there&rsquo;s</abbr> some light, that’s [Mac keyb] good.
</quote>
The Holy Bible, Creation
</quotation>

“In the beginning, there was nothing. And God said: ‘Let there be light!’ And there was light.”

The hypotheses (nor acronyms) used in English abbreviation contractions do not respond to Meyer's simple quotation CSS. That's where &rsquo; and &rdquo; are useful, working with the quotation, [abbr and acronnym][2] elements. Note that ABBR element (e.g., WHO) is distinct from the abbr attribute (it's one, he's done).

Note also that Apple device keyboards use Option and Shift-Option keys pressed-together with [ and ] keys to generate English opening and closing curly quotes respectively, in this and many other web environments. Meyer's CSS and simpler Apple keyboard shortcuts work well for ‹other languages›, such as French quotation punctuations.

Other devices and networks may similarly adapt or even block the simple display of HTML and CSS quotation code (and related punctuation). There's nothing wrong with offering HTML/CSS guidance, where appropriate. Curly quote styling can encompass more than simple quotes.

[1]: https://itebooksfree.com/book/css-the-definitive-guide-4th-edition/31410. Meyer and Weyl ©2018.

[2]: https://maxdesign.com.au/news/abbreviations/ ...no discussion of block elements that are a foundation of written language quotations. Contraction and quotation, CSS technology character string focus tends to ignore mainstream curly quotes development. Meyer being an important exception.

Answered by mark stewart on November 10, 2020

 .client_message:before {color: red;font-weight: bold;content: "“";}

 .client_message:after {color: red;font-weight: bold;content: "”";}

Answered by Nimesh on November 10, 2020

If you can use JavaScript you could change the HTML to

<div><q>Ankit</q></div>

(mentioned in comment before)

Now selecting the elements is easy

q {
    color: red;
    font-weight: bold;

}

Answered by Mx. on November 10, 2020

div.client_message:before {
    position: absolute;
    z-index: 2;
    overflow: visible;
    left: .0em;
    color: red;
    background-color: white;
    font-weight: bold;
    content: "“";
}
div.client_message:after {
    position: absolute;
    z-index: 2;
    overflow: visible;
    right: .0em;
    color: red;
    background-color: white;
    font-weight: bold;
    content: "”";
}
div.client_message {
    position: relative;
    display: inline;
    z-index: -1;
}

css has a content property and a :before and :after selector class, you can use these to insert and style the quotes.

note CSS content property is not supported is old IE's less than version 9 http://caniuse.com/css-gencontent

EDIT You have to do a bit of fudging in the CSS but you can get it to work http://jsfiddle.net/wtceu/

EDIT 2 I've put a background-color so that the tails from the HTML entity quotes don't show through the new overlapped quotes. The only issue is if the text takes up more than one line, the ending quote won't position correctly (you can reproduce this by shrinking the width of the jsfiddle window).

Answered by Louis Ricci on November 10, 2020

You can't. CSS has very limited capability when it comes to selecting things which are not elements.

The nearest CSS has is ::first-letter, but that would select &ldquo; A.

Answered by Quentin on November 10, 2020

Add your own answers!

Related Questions

Why am i getting the output twice in the Node console?

2  Asked on December 29, 2020 by chetan-batra

       

button to act as checkbox and change styles?

3  Asked on December 29, 2020 by jayg713

     

What should be structure of Redux Store?

2  Asked on December 29, 2020 by kiran

         

Random integer numbers with fixed sum

3  Asked on December 28, 2020 by whitecircle

 

how to attach a header in axios.all()

2  Asked on December 28, 2020 by haider-abidi

     

How to reduce dom manipulation while appending css using javaScript

4  Asked on December 28, 2020 by thefrontenddev

     

Problem with chaining relationships in Laravel

2  Asked on December 28, 2020 by mrmar

   

Lambda expresions and “? :” operator in Java 14

1  Asked on December 28, 2020 by theprettyface

     

There is no tracking information for the current branch

13  Asked on December 28, 2020 by valerio0999

     

flask upload python-base64 image

1  Asked on December 28, 2020 by a-clmnt

       

Getting italic font everywhere in HTML

1  Asked on December 27, 2020 by user9343456

     

Binding objects defined in code-behind

11  Asked on December 27, 2020 by xandy

       

Ask a Question

Get help from others!

© 2023 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP