简体   繁体   English

CSS:第n个选择标题

[英]CSS :nth Selectors Header

I need some help with selecting letters/words from headers (h1,h2,..). 我需要一些帮助来从标题中选择字母/单词(h1,h2,..)。

This is a CSS Zen Garden, which means I can only use CSS and can't edit HTML. 这是一个CSS Zen Garden,这意味着我只能使用CSS而不能编辑HTML。 I need to it with css Selectors. 我需要使用css选择器。 I tried using different ::nth selectors but I haven't found a solution yet. 我尝试使用不同的::第n选择器,但我还没有找到解决方案。

If i could change the HTML i would span the words i need in the header and make it get a new colour but here it's not possible... 如果我可以更改HTML,我会在标题中包含我需要的单词,并使其获得一种新颜色,但这里不可能......

I need to select the 10th letter of h3 and change colour to red in section preamble and in explanation section I need to change it too. 我需要选择h3的第10个字母,并在部分序言中将颜色更改为红色,在解释部分我也需要更改它。

I tried using the nth selectors ::nth-letter, ::last-line, ::nth-word. 我尝试使用第n个选择器:: nth-letter,:: last-line,:: nth-word。 ::first-letter works in the third header, but the rest won't. ::第一个字母在第三个标题中起作用,但其余的则不起作用。

 /*eerste section*/ .preamble h3 { font-family: fraktur; font-size: 15em; color: #4A4A4A; margin: 5%; } .preamble h3::nth-letter (5) { color:#C54B36; } .preamble { /* width: 80%; */ display: grid; grid-template-columns: 1fr; margin: 50px auto; /* border: 2px solid #000000; */ background-image: url('../images/foto1.png'); background-repeat: no-repeat; /*background-size: contain;*/ background-size: 40%; background-position: 93% 82%; } .preamble p { width: 47%; margin: 15px 40px; } /*einde eerste section*/ /*tweede section*/ .explanation h3 { font-family: baskerville; font-weight: 100; font-size: 10em; max-width: 42%; color: #4A4A4A; margin-right: 12%; } .explanation { /* width: 80%; */ display: grid; grid-template-columns: 1fr; margin: 50px auto; /* border: 2px solid #000000; */ background-image: url('../images/dame.png'); background-repeat: no-repeat; background-size: contain; background-position: 13% 82%; justify-items: end; } .explanation p { width: 47%; margin: 15px 40px; } /*vierde section*/ .requirements h3 { font-family: fraktur; font-weight: 100; font-size: 15em; color: #4A4A4A; margin: 5%; } .requirements { width: 80%; display: grid; grid-template-columns: 1fr; margin: 50px auto; background-image: url('../images/fin.png'); background-repeat: no-repeat; background-size: 30%; background-position: center bottom; justify-items: end;*/ } .requirements p { margin: 0 auto; column-count: 2; column-gap: 50px; } .requirements h3::first-letter { color:#C54B36; } /*einde vierde section*/ 
 <section class="intro" id="zen-intro"> <header role="banner"> <h1>CSS Zen Garden</h1> <h2>The Beauty of <abbr title="Cascading Style Sheets">CSS</abbr> Design</h2> </header> <div class="summary" id="zen-summary" role="article"> <p>A demonstration of what can be accomplished through <abbr title="Cascading Style Sheets">CSS</abbr>-based design. Select any style sheet from the list to load it into this page.</p> <p>Download the example <a href="/examples/index" title="This page's source HTML code, not to be modified.">html file</a> and <a href="/examples/style.css" title="This page's sample CSS, the file you may modify.">css file</a></p> </div> <div class="preamble" id="zen-preamble" role="article"> <h3>The Road to Enlightenment</h3> <p>Littering a dark and dreary road lay the past relics of browser-specific tags, incompatible <abbr title="Document Object Model">DOM</abbr>s, broken <abbr title="Cascading Style Sheets">CSS</abbr> support, and abandoned browsers.</p> <p>We must clear the mind of the past. Web enlightenment has been achieved thanks to the tireless efforts of folk like the <abbr title="World Wide Web Consortium">W3C</abbr>, <abbr title="Web Standards Project">WaSP</abbr>, and the major browser creators.</p> <p>The CSS Zen Garden invites you to relax and meditate on the important lessons of the masters. Begin to see with clarity. Learn to use the time-honored techniques in new and invigorating fashion. Become one with the web.</p> </div> </section> <div class="main supporting" id="zen-supporting" role="main"> <div class="explanation" id="zen-explanation" role="article"> <h3>So What is This About?</h3> <p>There is a continuing need to show the power of <abbr title="Cascading Style Sheets">CSS</abbr>. The Zen Garden aims to excite, inspire, and encourage participation. To begin, view some of the existing designs in the list. Clicking on any one will load the style sheet into this very page. The <abbr title="HyperText Markup Language">HTML</abbr> remains the same, the only thing that has changed is the external <abbr title="Cascading Style Sheets">CSS</abbr> file. Yes, really.</p> <p><abbr title="Cascading Style Sheets">CSS</abbr> allows complete and total control over the style of a hypertext document. The only way this can be illustrated in a way that gets people excited is by demonstrating what it can truly be, once the reins are placed in the hands of those able to create beauty from structure. Designers and coders alike have contributed to the beauty of the web; we can always push it further.</p> </div> <div class="participation" id="zen-participation" role="article"> <h3>Participation</h3> <p>Strong visual design has always been our focus. You are modifying this page, so strong <abbr title="Cascading Style Sheets">CSS</abbr> skills are necessary too, but the example files are commented well enough that even <abbr title="Cascading Style Sheets">CSS</abbr> novices can use them as starting points. Please see the <a href="http://www.mezzoblue.com/zengarden/resources/" title="A listing of CSS-related resources"><abbr title="Cascading Style Sheets">CSS</abbr> Resource Guide</a> for advanced tutorials and tips on working with <abbr title="Cascading Style Sheets">CSS</abbr>.</p> <p>You may modify the style sheet in any way you wish, but not the <abbr title="HyperText Markup Language">HTML</abbr>. This may seem daunting at first if you&#8217;ve never worked this way before, but follow the listed links to learn more, and use the sample files as a guide.</p> <p>Download the sample <a href="/examples/index" title="This page's source HTML code, not to be modified.">HTML</a> and <a href="/examples/style.css" title="This page's sample CSS, the file you may modify.">CSS</a> to work on a copy locally. Once you have completed your masterpiece (and please, don&#8217;t submit half-finished work) upload your <abbr title="Cascading Style Sheets">CSS</abbr> file to a web server under your control. <a href="http://www.mezzoblue.com/zengarden/submit/" title="Use the contact form to send us your CSS file">Send us a link</a> to an archive of that file and all associated assets, and if we choose to use it we will download it and place it on our server.</p> </div> <div class="benefits" id="zen-benefits" role="article"> <h3>Benefits</h3> <p>Why participate? For recognition, inspiration, and a resource we can all refer to showing people how amazing <abbr title="Cascading Style Sheets">CSS</abbr> really can be. This site serves as equal parts inspiration for those working on the web today, learning tool for those who will be tomorrow, and gallery of future techniques we can all look forward to.</p> </div> <div class="requirements" id="zen-requirements" role="article"> <h3>Requirements</h3> <p>Where possible, we would like to see mostly <abbr title="Cascading Style Sheets, levels 1 and 2">CSS 1 &amp; 2</abbr> usage. <abbr title="Cascading Style Sheets, levels 3 and 4">CSS 3 &amp; 4</abbr> should be limited to widely-supported elements only, or strong fallbacks should be provided. The CSS Zen Garden is about functional, practical <abbr title="Cascading Style Sheets">CSS</abbr> and not the latest bleeding-edge tricks viewable by 2% of the browsing public. The only real requirement we have is that your <abbr title="Cascading Style Sheets">CSS</abbr> validates.</p> <p>Luckily, designing this way shows how well various browsers have implemented <abbr title="Cascading Style Sheets">CSS</abbr> by now. When sticking to the guidelines you should see fairly consistent results across most modern browsers. Due to the sheer number of user agents on the web these days &#8212; especially when you factor in mobile &#8212; pixel-perfect layouts may not be possible across every platform. That&#8217;s okay, but do test in as many as you can. Your design should work in at least IE9+ and the latest Chrome, Firefox, iOS and Android browsers (run by over 90% of the population).</p> <p>We ask that you submit original artwork. Please respect copyright laws. Please keep objectionable material to a minimum, and try to incorporate unique and interesting visual themes to your work. We&#8217;re well past the point of needing another garden-related design.</p> <p>This is a learning exercise as well as a demonstration. You retain full copyright on your graphics (with limited exceptions, see <a href="http://www.mezzoblue.com/zengarden/submit/guidelines/">submission guidelines</a>), but we ask you release your <abbr title="Cascading Style Sheets">CSS</abbr> under a Creative Commons license identical to the <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/" title="View the Zen Garden's license information.">one on this site</a> so that others may learn from your work.</p> <p role="contentinfo">By <a href="http://www.mezzoblue.com/">Dave Shea</a>. Bandwidth graciously donated by <a href="http://www.mediatemple.net/">mediatemple</a>. Now available: <a href="http://www.amazon.com/exec/obidos/ASIN/0321303474/mezzoblue-20/">Zen Garden, the book</a>.</p> </div> 

在此输入图像描述

Take a look at that: 看一看:

在预期结果上标记线条

  1. Red line splits picture into parts with monocolored font. 红线将图片分割成具有单色字体的部分。
  2. Blue horizontal lines show that text is not centered - first line simply has an indent. 蓝色水平线显示文本不居中 - 第一行只是缩进。

 h3 { font-family: Diplomata; font-size: 40px; font-weight: normal; width: 600px; text-indent: 1.35em; background: linear-gradient(to right, red 1.35em, black 1.35em); -webkit-background-clip: text; color: white; /* make text readable if clipping is not supported */ -webkit-text-fill-color: transparent; } 
 <link href="https://fonts.googleapis.com/css?family=Diplomata" rel="stylesheet"> <h3>The Road to Enlightenment</h3> 

Browser support: at least actual versions of Chrome, FF, Edge. 浏览器支持:至少是Chrome,FF,Edge的实际版本。 Doesn't work in IE. 在IE中不起作用。

Ok, don't do this, but I've made a quick example to accompany my comment. 好的,不要这样做,但我已经做了一个快速的例子来陪伴我的评论。

What I did is split the actual title in 3 pseudo elements, of which the 2nd only contains the letter E which I made red. 我所做的是将3个伪元素中的实际标题分开,其中第2个仅包含我制作红色的字母E. The original text should somehow collapse, I just chose 0px font-size here as a quick hack that works in most desktop browsers. 原始文本应该以某种方式崩溃,我在这里选择0px font-size作为在大多数桌面浏览器中都能运行的快速黑客。

This is of course ugly, but it works and is not really bad for accessibility/SEO because pseudo elements are not read out by screen readers(or should not?) and the original title is still there. 这当然是丑陋的,但它对可访问性/搜索引擎优化有效并且不是很糟糕,因为屏幕阅读器不会读取伪元素(或者不应该?),原始标题仍然存在。

 .preamble::before { color: black; content: 'The Road to '; font-size: 20px; } h3 { color: transparent; font-size: 0; display: inline-block; } h3::before { color: red; content: 'E'; font-size: 20px; } h3::after { color: black; content: 'nlightenment'; font-size: 20px; } 
 <div class="preamble" id="zen-preamble" role="article"> <h3>The Road to Enlightenment</h3> <p>Littering a dark and dreary road lay the past relics of browser-specific tags, incompatible <abbr title="Document Object Model">DOM</abbr>s, broken <abbr title="Cascading Style Sheets">CSS</abbr> support, and abandoned browsers.</p> <p>We must clear the mind of the past. Web enlightenment has been achieved thanks to the tireless efforts of folk like the <abbr title="World Wide Web Consortium">W3C</abbr>, <abbr title="Web Standards Project">WaSP</abbr>, and the major browser creators.</p> <p>The CSS Zen Garden invites you to relax and meditate on the important lessons of the masters. Begin to see with clarity. Learn to use the time-honored techniques in new and invigorating fashion. Become one with the web.</p> </div> 

:nth-letter - why is it not working? :第n个字母 - 为什么不起作用?

It looks there is no such thing as: 看起来没有这样的事情:

:nth-letter(10);

Edit: 编辑:

Here is an example of nth-"everything" JavaScript that someone code: https://codepen.io/FWeinb/pen/djuIx 以下是有人编码的第n个“所有”JavaScript的示例: https//codepen.io/FWeinb/pen/djuIx

I hope in your project you can add javascript! 我希望在你的项目中你可以添加javascript!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM