- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在搜索一个 html 页面,我可以在其中获取要使用 javascript 增加的 div 中文本的字体大小,同时不应更改放置在该 div 中的图像,因为文本大小为增加。下面我用 javascript 粘贴带有文本 div 和图像 div 的示例 html 页面以增加字体大小。当我们单击“更改字体大小”按钮时,它会增加字体大小,同时放置在该 div 中的图像将从其初始位置移位。但我应该把这张图片放在同一个位置,不管文本大小如何增加,如果文本溢出,它应该转到下一栏。请帮助我克服这个困难。
<html>
<head>
<style type="text/css">
<!--
div#multicolumn4 {
-moz-column-width: 150px;
-moz-column-gap: 20px;
-webkit-column-width: 250px;
-webkit-column-gap: 20px;
column-width: 150px;
column-gap: 20px;
height: 900px;
}
-->
</style>
<script>
function changeFontSize(size)
{
debugger;
var elms = document.getElementsByTagName("span");
for(var i = 0;i < elms.length;i++)
{
var elmsHtml = elms[i].innerHTML;
var widthFactor = parseInt(elms[i].style.fontSize);
var FontSize = 0;
var ln = elmsHtml.length;
FontSize = Math.ceil(widthFactor +size);
elms[i].style.fontSize = FontSize;
}
}
function setFontSize(FontSize)
{
var elms = document.getElementsByTagName("span");
for(var i = 0;i < elms.length;i++)
{
elms[i].style.fontSize = FontSize;
}
}
</script>
</head>
<body>
<div>
<div id="multicolumn4" >
<span style='font-size:10px;'>
<h1>The header of the columns</h1>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nulla at turpis eget nibh ultricies dignissim. Duis luctus euismod turpis. Mauris augue. Aliquam facilisis semper elit. Pellentesque semper hendrerit arcu. Phasellus eleifend commodo justo. Aliquam orci urna, imperdiet sit amet, posuere in, lobortis et, risus. Integer interdum nonummy erat. Nullam tellus. Sed accumsan. Vestibulum orci ipsum, eleifend vitae, mollis vel, mollis sed, purus. Suspendisse mollis elit eu magna. Morbi egestas. Nunc leo ipsum, blandit ac, viverra quis, porttitor quis, dui. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vivamus scelerisque ipsum ut justo. Pellentesque et ligula eu massa sagittis rutrum. In urna nibh, eleifend vel, suscipit ut, sagittis id, nunc.</p>
</span>
<div><img id="Image-Maps_5201006280459541" src="images/im1.png" usemap="#Image-Maps_5201006280459541" border="0" width="192" height="256" alt="" />
<span style='font-size:10px;'>
<p>Nam ut sapien sed pede pulvinar rutrum. Nunc eu elit sed augue aliquet tincidunt. Morbi rutrum. Vestibulum dui turpis, lobortis quis, euismod sed, consectetuer sit amet, nunc. Nam mi. Fusce at nisl eu tortor bibendum eleifend. Sed ac metus. Phasellus nec elit. Morbi tortor nulla, tristique a, adipiscing at, consectetuer et, nisi. Nunc vel sapien sed risus hendrerit egestas. Vivamus turpis arcu, placerat eu, congue vel, commodo ut, nisl.</p>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nulla at turpis eget nibh ultricies dignissim. Duis luctus euismod turpis. Mauris augue. Aliquam facilisis semper elit. Pellentesque semper hendrerit arcu. Phasellus eleifend commodo justo. Aliquam orci urna, imperdiet sit amet, posuere in, lobortis et, risus. Integer interdum nonummy erat. Nullam tellus. Sed accumsan. Vestibulum orci ipsum, eleifend vitae, mollis vel, mollis sed, purus. Suspendisse mollis elit eu magna. Morbi egestas. Nunc leo ipsum, blandit ac, viverra quis, porttitor quis, dui. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vivamus scelerisque ipsum ut justo. Pellentesque et ligula eu massa sagittis rutrum. In urna nibh, eleifend vel, suscipit ut, sagittis id, nunc.</p>
<p>Nam ut sapien sed pede pulvinar rutrum. Nunc eu elit sed augue aliquet tincidunt. Morbi rutrum. Vestibulum dui turpis, lobortis quis, euismod sed, consectetuer sit amet, nunc. Nam mi. Fusce at nisl eu tortor bibendum eleifend. Sed ac metus. Phasellus nec elit. Morbi tortor nulla, tristique a, adipiscing at, consectetuer et, nisi. Nunc vel sapien sed risus hendrerit egestas. Vivamus turpis arcu, placerat eu, congue vel, commodo ut, nisl.</p>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nulla at turpis eget nibh ultricies dignissim. Duis luctus euismod turpis. Mauris augue. Aliquam facilisis semper elit. Pellentesque semper hendrerit arcu. Phasellus eleifend commodo justo. Aliquam orci urna, imperdiet sit amet, posuere in, lobortis et, risus. Integer interdum nonummy erat. Nullam tellus. Sed accumsan. Vestibulum orci ipsum, eleifend vitae, mollis vel, mollis sed, purus. Suspendisse mollis elit eu magna. Morbi egestas. Nunc leo ipsum, blandit ac, viverra quis, porttitor quis, dui. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vivamus scelerisque ipsum ut justo. Pellentesque et ligula eu massa sagittis rutrum. In urna nibh, eleifend vel, suscipit ut, sagittis id, nunc.</p>
<p>Nam ut sapien sed pede pulvinar rutrum. Nunc eu elit sed augue aliquet tincidunt. Morbi rutrum. Vestibulum dui turpis, lobortis quis, euismod sed, consectetuer sit amet, nunc. Nam mi. Fusce at nisl eu tortor bibendum eleifend. Sed ac metus. Phasellus nec elit. Morbi tortor nulla, tristique a, adipiscing at, consectetuer et, nisi. Nunc vel sapien sed risus hendrerit egestas. Vivamus turpis arcu, placerat eu, congue vel, commodo ut, nisl.</p>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nulla at turpis eget nibh ultricies dignissim. Duis luctus euismod turpis. Mauris augue. Aliquam facilisis semper elit. Pellentesque semper hendrerit arcu. Phasellus eleifend commodo justo. Aliquam orci urna, imperdiet sit amet, posuere in, lobortis et, risus. Integer interdum nonummy erat. Nullam tellus. Sed accumsan. Vestibulum orci ipsum, eleifend vitae, mollis vel, mollis sed, purus. Suspendisse mollis elit eu magna. Morbi egestas. Nunc leo ipsum, blandit ac, viverra quis, porttitor quis, dui. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vivamus scelerisque ipsum ut justo. Pellentesque et ligula eu massa sagittis rutrum. In urna nibh, eleifend vel, suscipit ut, sagittis id, nunc.</p>
<p>Nam ut sapien sed pede pulvinar rutrum. Nunc eu elit sed augue aliquet tincidunt. Morbi rutrum. Vestibulum dui turpis, lobortis quis, euismod sed, consectetuer sit amet, nunc. Nam mi. Fusce at nisl eu tortor bibendum eleifend. Sed ac metus. Phasellus nec elit. Morbi tortor nulla, tristique a, adipiscing at, consectetuer et, nisi. Nunc vel sapien sed risus hendrerit egestas. Vivamus turpis arcu, placerat eu, congue vel, commodo ut, nisl.</p>
</span>
<p><button onclick="changeFontSize(1.0)">Change font size (+)</button></p>
<p><button onclick="changeFontSize(-1.0)">Change font size (-)</button></p>
</div>
</div>
</body>
</html>
最佳答案
此类布局问题已asked before很多次:-)
从快速阅读该线程上的链接来看,这似乎并不容易。
编辑: 是的,这个问题一直困扰着我。我认为使用
少量
大量 复杂的 JavaScript/jQuery 是可能的,并设置了 making a demo .
还有一些工作要做,因为
<p>
包含图像的文件以糟糕的方式保留(即充满了
<span>
元素)。我也不对该解决方案的性能做出任何 promise 。它似乎对我有用。哦还有
Font +
链接只会工作一次,因为它增加文本的字体的实际大小是固定的。
也就是说,我真的会尝试为您的问题找到替代解决方案,甚至会质疑为什么您需要以这种方式修复图像位置。这违反了正常的浏览器重流和规则。
编辑:Improved demo 解决了评论中的问题。
编辑 2: 哇,我不知道 CSS3 列布局对于浏览器来说有多复杂!计算高度是为了使列或多或少相等,这意味着当我分离 <img>
时高度被调整。如果 font-size
调整后的高度会有所不同增加和 <img>
未删除。在 <img>
之前无法确定结果的高度被删除和添加。
也就是说,我已经让它在一个主要条件下工作 - 该列具有硬编码高度。我试图让它与浏览器计算的高度一起工作(正如正常的流程规则所规定的那样)但我认为如果没有更多的工作可能会非常困难。我认为这可能有效的唯一方法是移动 <img>
元素转发一个<span>
(即单词)一次直到正确 position().top
到达了。但这将是非常低效的,并且可能会减慢渲染速度以至于无法使用。
所以,这里是 my final demo 在 Chrome 11 中为我工作。抱歉,我无法获得可变高度的完整解决方案,但正如我和其他人所说,它确实打破了所有浏览器布局规则!
编辑 3: 当我说“最终”演示时,我显然不是那个意思。我接受您的挑战,让这个功能能够正确处理多张图片,我真的希望这次我能成功。请看看这个 new demo (为我在 Chrome12 中工作)与您发布的 HTML 一起工作。我必须承认您发布的 JavaScript 非常复杂。因此,我重构了所有内容,以基于我的原始 JavaScript 处理多个图像。
编辑 4: 现在进行了很多编辑……但我发现了错误。对于每个字体增量或减量,图像都会在流程中移动,并且可能是 margin-top
添加以将图像移回其原始位置。但是在重新计算后续字体大小更改的位置之前,我没有清除此 CSS。
添加的关键代码是:
// clear any existing marginTop added on the images
images.each(function() {
$(this).css('marginTop', 0);
});
我在那里的时候还稍微整理了 JavaScript,并通过删除 <span>
修复了另一个错误。元素 :-)
为了防止 jsFiddle 消失,这里是一个 HTML 文件的完整解决方案:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Test</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
$(function(){
var fontSize = 15;
// cannot store img.position().top or .left here because it is
// before the browser has re-flowed the columns, therefore the
// positions will be incorrect
var imageTops = new Array;
var imageLefts = new Array;
$('#fontUp').click(function() {
reflow(1);
});
$('#fontDown').click(function() {
reflow(-1);
});
function reflow(fontSizeStep) {
storeImagePositions();
var fontLimitReached = changeFont(fontSizeStep);
if (!fontLimitReached) {
moveImages();
}
return false;
}
function changeFont(step) {
fontSize += step;
var fontSizeLimitReached = true;
if (fontSize > 30) {
fontSize = 30;
} else if (fontSize < 15) {
fontSize = 15;
} else {
fontSizeLimitReached = false;
}
if (!fontSizeLimitReached) {
$('p').css({fontSize: fontSize + 'px'});
}
return fontSizeLimitReached;
}
// initialize store of img top and left positions
function storeImagePositions() {
if (imageTops.length == 0) { // only do it once
$('img').each(function() {
var imgPosition = $(this).position();
imageTops.push(imgPosition.top);
imageLefts.push(imgPosition.left);
});
}
}
function moveImages() {
// bye bye images
var images = $('img').detach();
// clear any existing marginTop added on the images
images.each(function() {
$(this).css('marginTop', 0);
});
// spanify paragraphs
$('#column > p').each(function() {
$(this).html('<span>' + $(this).html().replace(/\s\s+/g).replace(/(\s)/g,'</span>$1<span>') + '</span>');
});
var imageIndex = 0;
// iterate words, working out where we can move the img to in the flow and if
// we find a match, increment the index so that as we continue the each()
// the next image is evaluated for replacement
$('#column > p span').each(function() {
var wordPosition = $(this).position();
var wordLeft = wordPosition.left;
if (wordLeft >= imageLefts[imageIndex]) {
var wordBottom = wordPosition.top + $(this).height();
if (wordBottom > imageTops[imageIndex]) {
$(this).before(images[imageIndex]); // move img before this word
var newImgTop = $(images[imageIndex]).position().top;
$(images[imageIndex]).css({marginTop: imageTops[imageIndex] - newImgTop + 'px'});
imageIndex++; // increment index so remainder spans are being evaluated against the next image
}
}
});
// reverse the "spanification"
$('#column > p').each(function() {
$(this).html($(this).html().replace(/<\\?span>/g, '').trim());
});
}
});
//]]>
</script>
<style type="text/css">
div#column {
-moz-column-count:6;
-webkit-column-count:3;
column-count:3;
-webkit-column-width:100px;
-moz-column-width:100px;
column-width:100px;
height:500px;
}
p {
margin:0;
clear:left;
font-size:15px;
text-align:justify;
}
img {
float:left;
}
</style>
</head>
<body>
<div><a href="#" id="fontUp" style="margin-right:10px">Font +</a><a href="#" id="fontDown">Font -</a></div>
<div id="column">
<p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. <img src="http://www.avatarblast.com/avatars/cool/yoda.jpg" title="yoda" alt="yoda"/>It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</p>
<p>The change of name from <img src="http://www.avatarblast.com/avatars/cool/yoda.jpg" title="yoda" alt="yoda"/> LiveScript to JavaScript roughly coincided with Netscape adding support for Java technology in its Netscape Navigator web browser. The final choice of name caused confusion, giving the impression that the language was a spin-off of the Java programming language, and the choice has been characterized by many as a marketing ploy by Netscape to give JavaScript the cachet of what was then the hot new web-programming language. It has also been claimed that the language's name is the result of a co-marketing deal between Netscape and Sun, in exchange for Netscape bundling Sun's Java runtime with their then-dominant browser. Vivamus scelerisque ipsum ut justo. Pellentesque et ligula eu massa sagittis rutrum. In urna nibh, eleifend vel, suscipit ut, sagittis id, nunc.</p>
<p>Nam ut sapien sed pede pulvinar rutrum. Nunc eu elit sed augue aliquet tincidunt. Morbi rutrum. Vestibulum dui turpis, lobortis quis, euismod sed, consectetuer sit amet, nunc. Nam mi. Fusce at nisl eu tortor bibendum eleifend. Sed ac metus. Phasellus nec elit. Morbi tortor nulla, tristique a, adipiscing at, consectetuer et, nisi. Nunc vel sapien sed risus hendrerit egestas. Vivamus turpis arcu, placerat eu, congue vel, commodo ut, nisl.</p>
<p>Java EE includes several API specifications, such as JDBC, RMI, e-mail, JMS, web services, XML, etc., and defines how to coordinate them. Java EE also features some specifications unique to Java EE for components. These include Enterprise JavaBeans, Connectors, servlets, portlets (following the Java Portlet specification), JavaServer Pages and several web service technologies.<img src="http://www.avatarblast.com/avatars/cool/yoda.jpg" title="yoda" alt="yoda"/> This allows developers to create enterprise applications that are portable and scalable, and that integrate with legacy technologies. A Java EE application server can handle transactions, security, scalability, concurrency and management of the components that are deployed to it, in order to enable developers to concentrate more on the business logic of the components rather than on infrastructure and integration tasks.</p>
<p>Java (Indonesian: Jawa) is an island of Indonesia. With a population of 136 million, it is the world's most populous island, and one of the most densely populated regions in the world. It is home to 60% of Indonesia's population. The Indonesian capital city, Jakarta, is in west Java. Much of Indonesian history took place on Java; it was the centre of powerful Hindu-Buddhist empires, Islamic sultanates, the core of the colonial Dutch East Indies, and was at the centre of Indonesia's campaign for independence. The island dominates Indonesian social, political and economic life.</p>
</div>
</body>
</html>
关于javascript - 在 CSS 列中围绕固定 float 图像使用 JavaScript 增加字体大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5405789/
你知道更好的写法吗 font = font ? font : defaultFont; 我所知道的是: if(!font) { font = defaultFont } 我知道这是一个小工具问
我正在编写代码,但无法编译,即使类(字体)已通过 import javafx.scene.text.*; 导入我知道这个方法font包含在字体中。 这是我的代码: package helloworld
我已经构建了一个按钮,但在格式设置(即平方、内联文本等)方面遇到了问题 我目前的问题是:正文分为2部分- 上线正常-下一行是较大的字体大小 我的动画 react 正确,但文本应该在箭头的顶线和底线内。
好的,所以我想在网页上使用固定系统作为字体。我可以使用 Cufon,但我希望人们能够在鼠标悬停时选择文本并复制它。 有人有什么吗? 最佳答案 我使用 fontsquirrel 的 @font-face
我找到了 iOS 4.2 可用字体列表(链接 here ),但该列表与早期版本的 SDK 略有不同(链接 here )。 我可以很好地更改代码中的字体,但如果我使用 iOS 4.2 列表中可用的字体,
我正在尝试更改 TableView 标题上的字体颜色,其中显示“加利福尼亚/纽约”。我该怎么做? 在黑色背景上,文本需要是白色的,但无法弄清楚这一点。 谢谢 最佳答案 如果您尝试更改标题颜色,可以使用
假设我想使用 java.awt.Graphics.drawString(String str, int x, int y)在某些特定坐标处绘制字符串的方法,例如 (300, 300)。然而drawSt
我想使用Puppeteer从HTML字符串生成图像。现在我有这样的事情: const html = _.template(` Hello {{ test }}!
我正在创建一个游戏。我有一些带有文本的用户界面。最近我们想添加日语版本,但我遇到字体问题。我使用 stb_freetype 来光栅化字体,并且我支持 Unicode,所以这应该不是问题。但大多数字体似
我可以在一个文本区域中使用不同的前景色吗?不同的字体? 我想添加类似“hh:mm:ss 昵称:消息”的内容,时间为灰色,名称 - 蓝色,消息 - 黑色。 最佳答案 我在评论中犯了一个错误:你想要的是
每次我更改字体时,它都会返回到默认大小,即 12,即使我之前使用“ Jade 野”菜单更改它,它每次也只会返回到 12,我的猜测是这样我使用deriveFont()更改大小,但现在没有其他方法可以更改
我的电脑上安装了一种名为“BMW1”的自定义字体。我试图循环遍历此字体中的所有条目并将它们显示在 JTextArea 中。 我有以下代码: JTextArea displayArea = new JT
我尝试通过 Squirrel 理解生成的代码,这里是输出: @font-face { font-family: 'someFont'; src: url('someFont.eot')
我知道有多种方法可以通过 JS/DHTML 动态更改网页的字体属性,或者用 Flash 呈现的字体(使用 sIFR 或 Cufon)替换文本。但是,我找不到任何根据用户选择动态更改网页上使用的字体的好
使用具有非标准样式名称(例如“Inline”或“Outline”)而不是标准样式(例如“Bold”和“Italic”)的字体系列,如何使用 css 选择字体的不同样式? 设置 font-family
我对 html/css 有点陌生,我正在制作我的第一个网站,但我只是想不通一些东西。 首先,我在 dreaweaver 中工作...在 dreaweaver 中,一切看起来都不错,但是当我预览时,我缺
有没有办法在 Allegro5 中只绘制(或显示)图像/字体的一部分? 例如,如果我有一个正方形 A 和一个图像 B,我只想绘制/显示 B 中与 A(在本例中为 C)重叠的部分,我该怎么做? 插图:
所以,我有一个正在生成的报告 html 文件,其中有需要白色文本/字体的黑框。在通用 html 显示中一切都很好,但是当我尝试打印页面时,ctrl + p 或自定义打印功能,文本/字体保持为标准颜色,
我正在尝试制作一个非常适合 LaTeX 文档的 matlab 图形。一个已知的问题是 XTickLabel 和 YTickLabels 不使用 LaTeX 解释器渲染,导致图形不好看。 (注意:我意识
我需要在一个公共(public)位置使用默认颜色和字体,以便在桌面应用程序的多个窗口窗体中使用它。 这方面的最佳做法是什么? 我正在考虑使用应用程序设置在那里定义它们,但我想确保这是推荐的方法或者是否
我是一名优秀的程序员,十分优秀!