繁体   English   中英

如何根据 CSS 中的屏幕大小更改文本(不是字体大小)?

[英]How to change text (not font size) according to screen size in CSS?

我想在小屏幕上使用天数的缩写。
例如,当屏幕缩小时,我想将'Saturday'更改为'Sat'
我怎样才能做到这一点?

有 2 个包含完整和短字符串的 span,然后当低于目标分辨率时,使用媒体查询在它们之间交换:

HTML

<span class="full-text">Saturday</span>
<span class="short-text">Sat</span>

CSS

// Hide short text by default (resolution > 1200px)
.short-text { display: none; }

// When resolution <= 1200px, hide full text and show short text
@media (max-width: 1200px) {
    .short-text { display: inline-block; }
    .full-text { display: none; }
}

1200px替换为您的目标分辨率断点。

更多关于 CSS 媒体查询

一个使用::after的例子。 不确定屏幕阅读器等是否可以访问它。

按“整页”并将大小调整到 500 像素以下以查看实际效果。

这种方法的好处是:

  • 所有内容都在html文件中,而不是在 css 中
  • 认为通过只隐藏日期标签而不删除其内容,您可以规避一些可访问性问题

 @media screen and (max-width: 500px) { /* Add a pseudo element with the text from attribute 'data-abbr' */ .day[data-abbr]::after { content: attr(data-abbr); } /* Hide the original label */ .day > span { display: none; } }
 <div class="day" data-abbr="sat"> <span>Saturday</span> </div> <div class="day" data-abbr="sun"> <span>Sunday</span> </div>

您可以为此使用 Jquery

 <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script> $(document).ready(function(){ if($( window ).width() < 767){ $("p").text("Sat"); }else{ $("p").text("Saturday"); } }); $( window ).resize(function() { if($( window ).width() < 767){ $("p").text("Sat"); }else{ $("p").text("Saturday"); } }); </script> </head> <body> <p>Saturday</p> </body> </html>

在这里我放置了两个函数 .ready() 和 .resize,我使用 resize 函数只是为了测试,根据需要使用任何人或两者。

你也可以这样做。 但请注意,这将根据屏幕大小裁剪内容。 但是,如果您不想剪掉某些字母,那么这可能不是您想要的。

因此,要剪掉内容,请执行此操作。

HTML
<p>Saturday</p>

CSS
p {
  width: 100px;
  white-space: nowrap;
  text-overflow: ellipsis;
}

@media screen and only (max-width: 600px) {
p {
  width: 60px;
 }
}

现在文本将在 600px 屏幕大小上调整,但溢出将更改为省略号(...)。 您也可以将 text-overflow 设置为 clip,则不会显示省略号。 它会简单地剪辑。 当显示文章的片段并且您不想在示例显示上显示整个文本时,这会很有用。

希望这可以帮助某人。 干杯!!

我为链接做了这样的事情:

<a href="mailto:someEmail@gmail.com" class="link"></a>

然后用媒体查询设置文本。

@media (min-width: 250px) {
    .link::after {
        content: 'someEmail@gmail.com'
    }
}

@media (max-width: 249px){
    .link::after {
        content: 'Email'
    }
}

暂无
暂无

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

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