• 0

CSS Content String concatenation


Question

Is it possible to use string concatenation with the content property. I'm trying to display an image before every item in my list, but I want this image to be a link. Here's what I want to do, but I don't know how to do this. If anyone can help me out, that would be great. Thanks.

#side-nav ul li:before {
	position: relative;
	float:right;
	top: 15px;
	content: "<a href='http://url'>" + url('arrow.png') + "</a>";
}

Link to comment
https://www.neowin.net/forum/topic/1130684-css-content-string-concatenation/
Share on other sites

11 answers to this question

Recommended Posts

  • 0

No, you can't do it like this. CSS will not render the tags you input. Converts it to <

What is the actual URL you want to link to?

It might be "better" to add a new anchor element in script rather than use CSS. After all, you are adding function rather than style.

  • 0

Here's the script if you want it...


<script>

var figures = document.getElementsByTagName("li");
for (var counter = 0; counter < figures.length; counter++) {
var newLink = document.createElement("a");
newLink.setAttribute("href", "bob");
var txtNode = document.createTextNode("Hello. This is a new node.");
newLink.appendChild(txtNode);

figures[counter].insertBefore(newLink,figures[counter].firstChild)
}


</script>
[/CODE]

Ignore the naming convention, I had just written on my site and I have the figure element. You might have to extend the functionality so that other lists are ignored, but I can't be bothered to write that for free... :-)

  • 0
  On 14/01/2013 at 23:20, kman1985 said:

Well if I use jquery can't I just do it all in jquery? Add both the image and the link after the certain element list item? Thanks.

If you already have jQuery, you can change my code (which does the same thing) for jQuery. The selector part of it will be easier if you use jQuery.


var $newLink = $("<a />"),
$existingListItems = $("#side-nav ul li");
$newLink.attr("href","http://url
.text("Here's my new item")
.css({
position: "relative",
float:"right",
top: "15px"
});
$existingListItems.prepend($newLink)
[/CODE]

  • 0

Please don't use javascript for this. :s

Or if you do, at least consider what will happen if your user doesn't have js enabled. I don't see why


<ul>
<li><a href="somewhere"><img /></a><p>List element text</p></li>
...
</ul>
[/CODE]

Wouldn't work for you, though.

  • 0
  On 15/01/2013 at 19:10, threetonesun said:

Please don't use javascript for this. :s

Or if you do, at least consider what will happen if your user doesn't have js enabled. I don't see why


<ul>
<li><a href="somewhere"><img /></a><p>List element text</p></li>
...
</ul>
[/CODE]

Wouldn't work for you, though.

I was assuming he didn't have access to the code behind that renders these elements. Then again, I don't get why he would want a link in the side nav that isn't already there. It's a nav bar... why add an image link in there? If it's for visible purposes, then I would advise adding it as a background image.

Then again, it might help if he listed his actual problem rather than for just a solution to an isolation code issue.

  • 0
  On 15/01/2013 at 19:21, lunamonkey said:

I was assuming he didn't have access to the code behind that renders these elements. Then again, I don't get why he would want a link in the side nav that isn't already there. It's a nav bar... why add an image link in there? If it's for visible purposes, then I would advise adding it as a background image.

Then again, it might help if he listed his actual problem rather than for just a solution to an isolation code issue.

Fair enough. If there's already a link in a <li> and he can't get at the source, appending with js is probably the best way to go.

  • 0

Thanks guys. Got it working with jquery. Heres the code I used.

$(document).ready(function() {
	$('&lt;img src="/images/big-arrow.png" alt="Arrow" width="22" height="22" border="0" /&gt;').appendTo('#side-nav ul li');

	$('#side-nav ul li img').css ({
		position: 'relative',
		float: 'right',
		top: '-30px',
		left: '-5px'	  
	});

});

  • 0
  On 13/01/2013 at 21:09, kman1985 said:

Is it possible to use string concatenation with the content property.

 

Expand  

You don't use + with concatenation in CSS. An example of string concatenation would be

content: "foo" "bar";

Which would result simply in "foobar" on the screen.

A real world example of concatenation with the content property would be something like this

ol {
  li {
    :before {
      content: counter(li)".";
    }
  }
}

Which would result in numbers followed by periods (1. 2. 3. etc.)

This topic is now closed to further replies.
  • Posts

    • That would have been a so much better UX that what it is right now. I know that after a few moment of trying/failing to recognize you in the dark it goes back to PIN selection. But if the light sensor would detect the dark light, showing the PIN field while continuing for a brief moment to register your face would work better.
    • Oh ! This is why... Like some of you, i used Windows Hello since the Surface Pro 4. It worked really well for so long on many devices and still use it everyday with my desktop and laptop. I couldn't understand why it wasn't working as well as before in the dark. Why is Microsoft (as a company) in its UX decisions so anti-consumer right now ? -_-"
    • Zen Browser 1.13.2b is out.
    • KDE Plasma 6.4 launches, bringing better window management, improved KRunner, and more by David Uzondu It's finally here. After several weeks of development, KDE Plasma 6.4 has been rolled out, delivering a ton of significant refinements across the entire UX, from how you manage windows to how you see notifications. The biggest deal for power users is probably the increased flexibility in window management. Plasma 6.4 now allows you to set a completely different tiling layout for each virtual desktop. You can have a simple 50/50 split screen on one desktop for writing, and on another, have a complex grid with two apps snapped to the sides and two others floating in the middle. On the visual side, the default Breeze Dark theme got a little darker for better contrast, and when a password box pops up, the rest of the screen dims to help you focus. There is also a new Animations page in System Settings, which groups all the purely visual effects in one place so you can find them easily. The file transfer notification now shows a speed graph, giving you a much better idea of how a download is progressing. The system will even pop up a notice if you try talking into a muted microphone, and you can install system updates right from the notification that tells you they are ready. When you are in a full-screen application like a game or watching a movie, Plasma automatically enters a Do Not Disturb mode, holding back notifications until you are done. Plasma 6.3, which was released last February, brought several features, including a "Help" category to the launcher after getting rid of the "Settings" one. Now, Plasma 6.4 gives the application launcher a green New! tag next to recently installed apps to help you find them. KRunner and Spectacle, two of the most powerful utilities in Plasma, also received some serious attention. KRunner now lets you visualize colors just by typing in their hex code or even CSS names like "MintCream" or the ridiculous "PapayaWhip." The tool will then show you what that color looks like and give you its code in other formats. Spectacle, the screenshot tool, has been completely overhauled. Pressing the Print Screen key now immediately puts you in selection mode, letting you grab a region or the whole screen much faster before jumping straight into the annotation tools. Screen recordings made in the WebM format or on screens with fractional scaling have also seen a massive quality boost. The Bluetooth widget is getting smarter with better device recognition and easier pairing (we touched on this last month). People with nice monitors will appreciate the new HDR calibration wizard in the display settings. Plasma can also now handle Extended Dynamic Range and the P010 video format, improving power efficiency with HDR content. Digital artists were not left out either. Configuring the buttons on a stylus is "much more intuitive," and you can easily reset your tablet's calibration if you mess it up. Finally, there is a lot of work under the hood. The System Monitor can now show GPU usage for Intel and AMD hardware on a per-process basis and has a new Sensors page for nerds who want to see raw temperature data. When you drag and drop files on the same disk, you can now set it to always move them instead of asking what to do every time. The browser integration feature now supports the Flatpak versions of Firefox and Chromium-based browsers. All of this is built on top of support for a slew of new Wayland protocols, like "FIFO", "toplevel tag," and more. For more information, you can check out the official announcement post, as well as the full changelog.
    • Zoom Workplace 6.5.0.6118 by Razvan Serea Zoom Workplace for Windows is a reliable video conferencing tool that makes it easy to connect and collaborate. With features like messaging, file sharing, and app integrations, it’s designed to streamline teamwork. You’ll get high-quality audio and video, strong security with end-to-end encryption, and an intuitive interface—all of which help remote teams and businesses stay productive and connected. Zoom Workplace key features: High-Definition Video & Audio: Provides clear, reliable communication for virtual meetings. End-to-End Encryption: Ensures secure communication with strong data protection. Multi-Factor Authentication: Adds an extra layer of security for user accounts. Integration with Productivity Apps: Supports seamless integration with Microsoft Office, Google Workspace, and more. File Sharing: Easily share files during meetings for efficient collaboration. Real-Time Messaging: Enables team chat for ongoing communication. Collaborative Whiteboarding: Allows teams to brainstorm and collaborate visually. Webinar Support: Host large webinars with interactive features. Administrative Controls: Manage user permissions, meeting settings, and security features. Cloud Storage: Automatically stores meetings and files in the cloud for easy access. Cross-Platform Support: Available on Windows, macOS, and mobile devices. Meeting features: Virtual Backgrounds: Customize your background for meetings to maintain privacy or enhance professionalism. Touch Up My Appearance: Automatically smoothens skin tone for a more polished video appearance. Breakout Rooms: Divide meetings into smaller sessions for group discussions or workshops. Live Transcription: Automatically generate real-time captions during meetings for accessibility. Zoom Apps: Integrate third-party applications directly into Zoom for enhanced functionality. Meeting Reactions: Participants can use emojis for quick, non-verbal feedback during meetings. Polling: Conduct live polls during meetings to gather instant feedback from participants. Attention Tracking: Monitors participant attention during meetings to ensure engagement. Closed Captioning: Enable manual or automatic captions for a more inclusive experience. Webinar Replay: Record and share webinars with analytics for audience engagement. Download: Zoom 64-bit | Zoom 32-bit (Free, paid upgrade available) Links: Zoom Website | Zoom ARM64 | Zoom Installers | Release Notes Get alerted to all of our Software updates on Twitter at @NeowinSoftware
  • Recent Achievements

    • Week One Done
      Rhydderch earned a badge
      Week One Done
    • Experienced
      dismuter went up a rank
      Experienced
    • One Month Later
      mevinyavin earned a badge
      One Month Later
    • Week One Done
      rozermack875 earned a badge
      Week One Done
    • Week One Done
      oneworldtechnologies earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      699
    2. 2
      ATLien_0
      273
    3. 3
      Michael Scrip
      214
    4. 4
      +FloatingFatMan
      186
    5. 5
      Steven P.
      145
  • Tell a friend

    Love Neowin? Tell a friend!