Go to main content

Textpattern CMS support forum

You are not logged in. Register | Login | Help

#1 Yesterday 05:36:09

colak
Admin
From: Cyprus
Registered: 2004-11-20
Posts: 9,437
Website GitHub Mastodon Twitter

[SOLVED] nbsp in css

I’ve been trying to add a non breaking space in my css for some years now but the browser appears to be ignoring it.

a[rel~=external]:after{content:"\00a0\21D7";

My suspicion is that the \21D7 entity, which translates to ⇗ does not respect the non breaking space before it. Is there a work around?


Yiannis
——————————
NeMe | hblack.art | EMAP | A Sea change | Toolkit of Care
I do my best editing after I click on the submit button.

Offline

#2 Yesterday 06:46:42

phiw13
Plugin Author
From: East Asia
Registered: 2004-02-27
Posts: 3,718
Website

Re: [SOLVED] nbsp in css

What are yo trying to achieve?

The thing is, your ::after is a separate node in the generated dom, so that space will not collapse in the presence of a space just preceding it.


In low-power mode.
Sand space – admin theme for Textpattern
phiw13 on Codeberg

Offline

#3 Yesterday 07:17:35

colak
Admin
From: Cyprus
Registered: 2004-11-20
Posts: 9,437
Website GitHub Mastodon Twitter

Re: [SOLVED] nbsp in css

phiw13 wrote #343554:

What are yo trying to achieve?

The thing is, your ::after is a separate node in the generated dom, so that space will not collapse in the presence of a space just preceding it.

I’m trying to signify external links but also keep the ⇗ with the linked text.

Although there is no issue on www.neme.org/texts/revisiting-inarticulacy#notes, note 15, if you change the width of your browser, ⇗ moves to the next line. The issue appears in other posts even without changing the browser width.


Yiannis
——————————
NeMe | hblack.art | EMAP | A Sea change | Toolkit of Care
I do my best editing after I click on the submit button.

Offline

#4 Yesterday 07:33:09

colak
Admin
From: Cyprus
Registered: 2004-11-20
Posts: 9,437
Website GitHub Mastodon Twitter

Re: [SOLVED] nbsp in css

The magic of the forum has solved it. As I’m defining all external links in a shortcode, I added the html entities there, deleted the pseudo element and all works as expected.


Yiannis
——————————
NeMe | hblack.art | EMAP | A Sea change | Toolkit of Care
I do my best editing after I click on the submit button.

Offline

#5 Yesterday 08:23:17

phiw13
Plugin Author
From: East Asia
Registered: 2004-02-27
Posts: 3,718
Website

Re: [SOLVED] nbsp in css

colak wrote #343556:

The magic of the forum has solved it. As I’m defining all external links in a shortcode, I added the html entities there, deleted the pseudo element and all works as expected.

Well now your arrow is fully outside of the link, and not part of it, and part of the actual content. If someone (indexing bot, screen reader, …) reads the text, the will be added as part of the text itself.

Possible workaround to your conundrum: keep your generated content and

  • remove the non-breaking space part (\00a0)
  • add a little bit of padding at the start: ::after { padding-inline-start: .25ch; }

Or, add your white-space node inside the link (<a href=”“>text text&#160;</a>@) and use you simplified ::after { content: "\21D7"; }. Since you are using a short code, you just need to add it there.


In low-power mode.
Sand space – admin theme for Textpattern
phiw13 on Codeberg

Offline

#6 Yesterday 15:58:03

colak
Admin
From: Cyprus
Registered: 2004-11-20
Posts: 9,437
Website GitHub Mastodon Twitter

Re: [SOLVED] nbsp in css

phiw13 wrote #343558:

Well now your arrow is fully outside of the link, and not part of it, and part of the actual content. If someone (indexing bot, screen reader, …) reads the text, the will be added as part of the text itself.

Possible workaround to your conundrum: keep your generated content and

  • remove the non-breaking space part (\00a0)
  • add a little bit of padding at the start: ::after { padding-inline-start: .25ch; }

Or, add your white-space node inside the link (<a href=”“>text text&#160;</a>@) and use you simplified ::after { content: "\21D7"; }. Since you are using a short code, you just need to add it there.

I agree with you that should not be indexed! Why do you have to be so right all the time:)

I’ve tried both your suggestions and the moves to the next line when available browser width space runs out.

ps. I have checked the net extensively about this and no solution worked.


Yiannis
——————————
NeMe | hblack.art | EMAP | A Sea change | Toolkit of Care
I do my best editing after I click on the submit button.

Offline

#7 Yesterday 16:48:55

skewray
Member
From: Sunny Southern California
Registered: 2013-04-25
Posts: 288
Website Mastodon

Re: [SOLVED] nbsp in css

Coming from a state of 99% ignorance, why doesn’t <span style="white-space:nowrap"> work?

Offline

#8 Yesterday 17:12:08

colak
Admin
From: Cyprus
Registered: 2004-11-20
Posts: 9,437
Website GitHub Mastodon Twitter

Re: [SOLVED] nbsp in css

skewray wrote #343562:

Coming from a state of 99% ignorance, why doesn’t <span style="white-space:nowrap"> work?

That may work when I have text for the link but I also use it without text (just showing the urls). In such cases I use a regex to shorten the urls and also create spaces in order for that url to to wrap. Adding white-space:nowrap will conflict with this function


Yiannis
——————————
NeMe | hblack.art | EMAP | A Sea change | Toolkit of Care
I do my best editing after I click on the submit button.

Offline

#9 Today 02:18:10

phiw13
Plugin Author
From: East Asia
Registered: 2004-02-27
Posts: 3,718
Website

Re: [SOLVED] nbsp in css

colak wrote #343560:

I’ve tried both your suggestions and the moves to the next line when available browser width space runs out.

Strange, I would have thought something like this to work:

<a href="" rel="external">link text</a>
a[rel~=external]::after {
  content:"\21D7";
  padding-inline-start: .25ch; /* adjust value to taste */
 }

A slightly constrained text case: dev.l-c-n.com/_temp/non-breakin-space-colak.html. The first line inserts just the generated content; the second line insert a non-breaking space after the last word inside the link. The third adds some tiny bit of padding to the generated content.

colak wrote #343563:

That may work when I have text for the link but I also use it without text (just showing the urls). In such cases I use a regex to shorten the urls and also create spaces in order for that url to to wrap. Adding white-space:nowrap will conflict with this function

In case of URL strings, word-break: break-all; does works perfectly, with the benefit if the user copies the whole block, the URL is still usable. But you probably don’t want words in regular text to break. Depending on how your regex works perhaps just add a class in case of URL strings?


In low-power mode.
Sand space – admin theme for Textpattern
phiw13 on Codeberg

Offline

#10 Today 16:59:39

colak
Admin
From: Cyprus
Registered: 2004-11-20
Posts: 9,437
Website GitHub Mastodon Twitter

Re: [SOLVED] nbsp in css

phiw13 wrote #343565:

A slightly constrained text case: dev.l-c-n.com/_temp/non-breakin-space-colak.html. The first line inserts just the generated content; the second line insert a non-breaking space after the last word inside the link. The third adds some tiny bit of padding to the generated content.

That looks like it works!!! I’ll try it first thing tomorrow morning.


Yiannis
——————————
NeMe | hblack.art | EMAP | A Sea change | Toolkit of Care
I do my best editing after I click on the submit button.

Offline

Board footer

Powered by FluxBB