- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
在调整容器大小时,我们的元素中有一个情况。为我们的元素边距保留“auto”值似乎是不可能的。
例如,当尝试使用 javascript 或 jquery 获取边距值时,该值始终返回 0。我们确实需要在调整大小时保持“自动”,那么有没有办法确定哪些元素有边距:auto;
即使可以使用原始 javascript?
---------------- 可能的解决方案但需要扩展----------------
我发现这很有用。这实际上解决了部分问题!
Retrieve element margin if it's 'auto' (答案 3)
if($(this).position().left*2 == ($(this).parent().innerWidth() - $(this).outerWidth())) {
console.info($(this).attr('id'));
}
然而,这与许多元素相匹配,因此需要以某种方式更加具体。希望有人知道如何改进这段代码?
最佳答案
编辑:我只在 Chrome 中测试了以下解决方案。它目前不适用于 IE 或 Firefox。我会在它运行时提供更新。
编辑 2:Firefox 解决方案:http://jsfiddle.net/E9eW6/8/ .问题是每个浏览器以不同方式处理它们的 CSSStyleDeclaration 对象。虽然 Firefox 的是可管理的,但 IE 已经在 la-la land 的某个地方使用它们的 CSSRuleStyleDeclaration 等价物。很抱歉,但我的知识和耐心不足以了解 Microsoft 的糟糕实现,这种实现可能会在未来发生改变。
在对这个有趣的问题进行了一些研究之后,我找到了解决方案
jsFiddle:http://jsfiddle.net/S5Sbf/3/
答案实际上是在 Stackoverflow 上的另一个问题中:Can jQuery get all CSS styles associated with an element? (见第二个答案)
基本上,该函数将遍历 document.Stylesheets 以查找与您的元素相匹配的元素,并在一个漂亮的美味对象中返回其所有 CSS。
这是一个非常漂亮的功能,用起来很自豪!
function css(a){
var sheets = document.styleSheets, o = {};
for(var i in sheets) {
var rules = sheets[i].rules || sheets[i].cssRules;
for(var r in rules) {
if(a.is(rules[r].selectorText)) {
o = $.extend(o, css2obj(rules[r].style), css2obj(a.attr('style')));
}
}
}
return o;
}
function css2obj(css){
var s = {};
if(!css) return s;
if(css instanceof CSSStyleDeclaration) {
for(var i in css) {
if((css[i]).toLowerCase) {
s[(css[i]).toLowerCase()] = (css[css[i]]);
}
}
} else if(typeof css == "string") {
css = css.split("; ");
for (var i in css) {
var l = css[i].split(": ");
s[l[0].toLowerCase()] = (l[1]);
};
}
return s;
}
(第二个答案中的使用详情:Can jQuery get all CSS styles associated with an element?)
使用上面的css函数:
$("*").each(function(index, element){
cssObj = css($(element));
$(element).after("margin-left is " + cssObj['margin-left'] + '<br/>');
$(element).after("margin-right is " + cssObj['margin-right'] + '<br/>');
$(element).after("margin-top is " + cssObj['margin-top'] + '<br/>');
$(element).after("margin-bottom is " + cssObj['margin-bottom'] + '<br/>');
});
关于jquery - 是否可以确定哪些元素具有 margin auto?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8356401/
这个问题在这里已经有了答案: Range based loop: get item by value or reference to const? (5 个答案) 关闭 6 年前。 如果我有这样的类
最近,我使用 CSS grid 创建了一个布局.虽然这很好用,但我对它的工作原理感到困惑。具体来说,我对 grid-template-rows: auto auto 1fr auto; 这一行感到困惑
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Why don't margin-top: auto and margin-bottom:auto work
我几乎已经尝试了所有我知道的方法,但是当我将我的 Android studio 更新到最新版本时,它仍然显示此错误。我该怎么办? gradle.build 是: buildscript { r
我想创建一个deep_flatten函数模板,该模板将生成包含range ed的元素的join。例如,如果仅考虑嵌套的std::vector,我可以拥有: template struct is_ve
我刚刚看了 Scott Meyers Universal References in C++11有一件事我不太明白。 我对作为“通用引用”的 auto 之间的区别感到有点困惑,即 auto&& 和常规
这个问题在这里已经有了答案: C++11 Range-based for-loop efficiency "const auto &i" versus "auto i" (3 个答案) 关闭 3 年
由于 auto 关键字在编译时获取类类型,我想知道使用 auto* 是否有任何效率,或者是否有任何特殊用途该表达式,因为 auto 在编译时已经获得了指针类型。 最佳答案 这个“新奇的 C++11”与
请问我是否正确,对函数返回值使用 auto&& 总是比使用 auto 更好。例如,在 auto val = someObj.getVal(); 如果 getVal() 返回引用,则 val 将是一个拷
有区别吗: template constexpr decltype(auto) f(T&& x) -> decltype(std::get(std::forward(x))) { retur
我想创建一个 deep_flatten会产生 range 的函数模板深的元素join编。例如,如果我们只考虑嵌套 std::vector s,我可以有: template struct is_vec
我在玩auto在 std::pair .在下面的代码中,函数 f应该返回 std::pair依赖于模板参数的类型。 一个工作示例: 示例 1 template auto f() { if c
我是一名 Android 开发人员,我正在尝试开发一个定制的 Android Auto 应用程序,它可以简单地镜像手机屏幕。 我知道目前 API 仅适用于音乐和消息应用程序,但我会编写一个应用程序来镜
我有一个很大的 div,里面有文字: #big-div { height: 400px; overflow: auto; } 如何才能使当新内容添加到 div(并发生溢出)时,div
我正在尝试设计一个网站,其中包含一个带有溢出的内容区域:自动和一个动态高度。最好是,我希望能够在 overflow: auto div 下方放置一个页眉和一个页脚,并让该 div 占用剩余的空间,但到
这个问题在这里已经有了答案: Does 'auto' type assignments of a pointer in c++11 require '*'? (3 个答案) 关闭 6 年前。 以下在
当使用 auto&& 处理返回左值的函数时: int func() { int v=42; return v; } auto && v = func(); 将 v 视为引用而不是左值会产生
我读了一篇关于 auto 类型推导的文章,使用 decltype 我想知道我在下面的例子中关于如何推导类型的逻辑是否正确(所以如果我是有误请指正:) #include using namespace
这个问题在这里已经有了答案: What's the semantically accurate position for the ampersand in C++ references (3 个回答)
假设我有 class Container { public: T getValue() const { return t; } const T& getCRef() const {
我是一名优秀的程序员,十分优秀!