- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个特殊的设置,允许并排设置 4 个图像并以列表格式响应。
我试图让标题的背景与文本高度匹配并延伸到图像的宽度,以便在悬停时垂直和水平居中。
我读过许多使用绝对/相对位置的文章,但我无法在我的代码中使用它。我尝试了垂直对齐、文本居中、顶部、左侧、宽度,但文本仍然位于图像的底部。
以下是我点击的链接的大约 10%:
很抱歉发了这么长的帖子(这是所有代码,所以只需将代码跳到 jsfiddle)。
我当前的设置 Here is a link to the jsFiddle :
HTML:
<ul class="tab">
<li>
<a class="tabimg gq-module-hover tilt" tabindex="0" data-about="Newborns"><img src="http://debora.com.au/wp-content/uploads/2016/11/DEB_0095.jpg" alt="">Newborns</a>
</li>
<li>
<a class="tabimg gq-module-hover" tabindex="1" data-about="Children"><img src="http://debora.com.au/wp-content/uploads/2016/11/DEB_8252.jpg" alt="">Children</a>
</li>
<li>
<a class="tabimg gq-module-hover" tabindex="2" data-about="Families"><img src="http://debora.com.au/wp-content/uploads/2016/11/DEB_8607.jpg" alt="">Families</a>
</li>
<li>
<a class="tabimg gq-module-hover" tabindex="3" data-about="Lifestyle"><img src="http://debora.com.au/wp-content/uploads/2016/11/DEB_6620.jpg" alt="">Lifestyle</a>
</li>
</ul>
CSS:
/* Style the list */
ul.tab {
whitespace: nowrap;
width: 100%;
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
text-align: center;
}
/* Style the a tags */
ul.tab li a {
display: inline-block;
color: black;
text-align: center;
text-decoration: none;
transition: 0.3s;
font-size: 17px;
-webkit-filter: grayscale(50%); /* Safari 6.0 - 9.0 */
filter: grayscale(50%);
}
/* Change background color of links on hover */
ul.tab li a:hover {
background-color: #000000;
-webkit-transform: scale(1.1, 1.1);
transform: scale(1.1, 1.1);
box-shadow: 1px 5px 14px rgba(0, 0, 0, 3);
z-index: 1;
-webkit-filter: grayscale(0%); /* Safari 6.0 - 9.0 */
filter: grayscale(0%);
}
/* Create an active/current tablink class */
ul.tab li a:focus, .active {
background-color: #ccc;
-webkit-filter: grayscale(0%); /* Safari 6.0 - 9.0 */
filter: grayscale(0%);
}
/* Style the tab content */
.tabcontent {
display: none;
padding: 6px 12px;
border: 1px solid #ccc;
border-top: none;
}
/*style the images*/
.tabimg {
box-sizing: border-box;
}
.tab {
font-size: 0; /* To get rid of the space below the li tags */
display: inline-block;
/* change this to display: block; in order to make the container as wide as the page is */
box-sizing: border-box;
overflow: hidden;
/* to clear the float */
}
.tab li {
box-sizing: border-box;
float: left;
width: 25%;
}
.tab li a {
width: 100%; /* remove this if you dont want the images to resize if the container is as wide as the page (if .tab is display: block;*) */
}
.tab li img {
width: 100%;
display: block;
box-sizing: border-box;
}
Javascript
/* Simple foreach as the js foreach method is not supported by IE9 and you may want to support it.
CanIUse: http://caniuse.com/#search=foreach */
function simpleForEach(array, callback) {
for (var i = 0; i < array.length; i++) {
callback(array[i], i);
}
}
/* Parts of this can be done with pure css.
This function should executed on load:
document.addEventListener("load", load);
or on DOMContentLoaded:
document.addEventListener("DOMContentLoaded", load);
CanIUse: http://caniuse.com/#search=DOMContentLoaded. */
jQuery(document).ready(function(){
var tabimgs = document.getElementsByClassName("tabimg");
// for each tabimg
simpleForEach(tabimgs, function(tabimg) {
var cityName = tabimg.getAttribute("data-about");
// add the click event listener
tabimg.addEventListener("click", function(evt) {
// onclick do:
// hide all tabcontents
simpleForEach(document.getElementsByClassName("tabcontent"), function(tc) {
tc.style.display = "none";
});
// remove the active class
simpleForEach(document.getElementsByClassName("tabimg"), function(ti) {
ti.className = ti.className.replace(" active", "");
});
// show the current tab, and add "active" class to the link that opened the tab
document.getElementById(cityName);
tabimg.className += " active";
});
});
});
如果能就此提供一些帮助/指导,我将不胜感激。提前谢谢你。
最佳答案
这是我的解决方法:https://jsfiddle.net/JustusFT/jrhk8L7j/
我使用这种技术将其居中。 https://www.w3.org/Style/Examples/007/center.en.html#hv3
我将缩略图的 position:
设置为 relative。这会导致具有 absolute
定位的子元素基于父元素定位。新的 HTML:
<ul class="tab">
<li>
<a class="tabimg gq-module-hover tilt" tabindex="0" data-about="Newborns">
<img src="http://debora.com.au/wp-content/uploads/2016/11/DEB_0095.jpg" alt="">
<div class="caption">Newborns</div>
</a>
</li>
<li>
<a class="tabimg gq-module-hover" tabindex="1" data-about="Children"><img src="http://debora.com.au/wp-content/uploads/2016/11/DEB_8252.jpg" alt="">
<div class="caption">Children</div>
</a>
</li>
<li>
<a class="tabimg gq-module-hover" tabindex="2" data-about="Families"><img src="http://debora.com.au/wp-content/uploads/2016/11/DEB_8607.jpg" alt="">
<div class="caption">Families</div>
</a>
</li>
<li>
<a class="tabimg gq-module-hover" tabindex="3" data-about="Lifestyle"><img src="http://debora.com.au/wp-content/uploads/2016/11/DEB_6620.jpg" alt="">
<div class="caption">Lifestyle</div>
</a>
</li>
</ul>
CSS:
.tab li {
box-sizing: border-box;
float: left;
width: 25%;
position: relative;
/*Added*/
}
.tab li .caption {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
我还删除了 text-align:center;
的所有实例
关于javascript - 无法将文字居中放置在图片上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40834500/
我想使用 Angular.js 转换从服务器获取的图像数据(用于 ionic 框架),我使用了这段代码: $http.post(link, { token: token,
我正在为我的应用制作一个登陆页面。如果它们在 iOS 设备上,我希望它只显示“App Store”图标,但在 Android 上隐藏它。如果它们在 Android 设备上,则只有“Play Store
如何在同一页面上多次显示同一张图片? function xdf(){ for (i=0;ihello world'); } } 此代码显示“hello world”10 次。我想要同样的东西,
您好,我有一个 1px 的 png 文件,我试图将其设置为两个水平相邻的 div 的背景图像。html 和 css 如下:- hi hello css是这样的 div { width: 50%
我的 PHP 项目安装了 Prestashop 1.4.9.0。当我添加一个新产品时,我上传了一个PNG格式的图片,但是当它在客户端显示时,图片是JPG格式的。 如何保留图片扩展名? 最佳答案 在后台
我用 http://www.regexper.com查看一个象形表示正则表达式很多。我想要一种理想的方法: 向站点发送正则表达式 打开显示该表达式的站点 例如,让我们使用正则表达式:"\\s*foo[
我不知道为什么在 MAC OS X (Mail 6.2) 的邮件客户端中图像显示如下: 和其他邮件客户端,如 gmail、outlook 或 private,图像是正确的,看起来像这样: PHP邮件程
我正在使用此处找到的示例。 Mozilla developers 我对这个例子很感兴趣。 function upload(postUrl, fieldName, filePath) { var f
我不知道为什么在 MAC OS X (Mail 6.2) 的邮件客户端中图像显示如下: 和其他邮件客户端,如 gmail、outlook 或 private,图像是正确的,看起来像这样: PHP邮件程
我的问题是如何根据用户在javafx中选择的复选框和/或单选按钮生成带有汽车图片设置的按钮? 我正在用汽车图片模拟汽车经销商网站。用户应该能够通过单击复选框和/或单选按钮选择来过滤显示的图片。 我首先
我正在开发Java客户端,它应该支持多种语言。为了翻译文本,我使用 Java ResourceBoundle,它工作正常。 现在问题出在图像上。客户端应加载大约 50 张图像,这些图像是棋盘游戏的特定
我对 jQuery 还很陌生,但我正在寻找一个简单的脚本,通过淡入和淡出的方式在标题中循环 3 或 4 个背景图像。它们是透明的 png,因此我尝试过的许多 slider 都不起作用。 有什么想法吗?
我有一个 HTML 文档,其中包含本地文件的图像,例如: ios - 物理主体大于它分配给的纹理(图片)
我的 Sprite “physicsBody ”属性之一出现问题。 我已经放置了physicsBody节点“barn ”,直接位于 non-physicsBody 之上节点“mound”没有任何问题。
我想剪切图片的特定部分并用它来将剪切的图像与存储在 HDD 中的另一个图像进行比较。问题是我不知道如何获取源图像的特定部分。我知道要裁剪的图像的位置 (X,Y)。 最佳答案 这将加载原始版本并创建
如何使用裁剪实用程序在 javascript 中实现图像 uploader 。你如何通过 AJAX 提交图像文件?解决方案是否跨域兼容? 最佳答案 要实现具有裁剪功能的图片上传小部件,您必须: 将图像
public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityRes
我想在我的 android 应用程序中显示一个国家的图片。国家必须按地区划分。因此,当用户单击特定区域时,应打开特定屏幕。区域也应该用线分隔,以便用户可以看到区域的开始/结束位置。 这是一个国家的例子
首先我想对这个问题表示歉意,因为我知道已经有很多人问过这个问题了。但我搜索的所有答案都没有解决我的问题。所以希望您考虑这个问题并帮助我解决这个问题。 所以基本上我正在尝试上传图像文件,当我提交它时,会
我几乎有了想要的数据...但需要帮助过滤它。 (图在底部) 下面的查询返回状态为 Member-id5 的所有记录,但我需要对其进行过滤。例如:如果我对等做了一个简单的查询。 (exp_channel
我是一名优秀的程序员,十分优秀!