2015-10-16 21 views
0

我在移动应用程序项目中使用AngularJSCordova(离子),并且所有内容都使用相同的page perse。一切被装入单个index.html文件,所以每个“网页”之间的body, html, ion-view, ion-content元件全部共享/“接口”如果存在子类,是否可以应用CSS样式?

基本上,所有的我的接口设置了与唯一标识符:

<ion-content id="interface-name">...</ion-content> 

然而,在此界面中,我需要确保以下要素有以下类型:

html, body, ion-view, ion-content, .scroll { 
    height: 100%; 
    overflow: hidden; 
    margin: 0; 
    padding: 0; 
} 

这样的界面可以全屏。这一切都很好,并且很花哨,但是这导致我的其他界面无法垂直滚动/展开。

有没有一种方法(使用CSS)仅在存在子id/class时应用样式,例如,仅当id="interface-name"应用于子元素时才应用上述样式?

+0

如果你只是想应用样式的ID =“接口名”,然后在CSS中只需添加#接口名{}内容 –

+0

有很多关于'讨论:parent', ':在过去的几年中有()'或者具有类似目的的选择器,可悲的是,只是讨论。这里有一个5年前的帖子:https://remysharp.com/2010/10/11/css-parent-selector – Leo

+0

@VictorLuna - 如果你阅读这个问题,这是行不通的,因为“全屏“页面,以上所有元素都需要具有100%属性。 – Hobbyist

回答

1

不,这是级联样式表的“级联”部分。这是一种自顶向下的方法,您无法恢复流。

0

如果你想你上面的代码在ID /班工作,例如仅适用于ID =“接口名”

#interface-name { 
    height: 100%; 
    overflow: hidden; 
    margin: 0; 
    padding: 0; 
} 
0

您可以用在页面加载时间的JavaScript函数做到这一点,但你不能有条件地应用CSS规则来存在子元素。一些简单的像

var parent = document.getElementById("elementId").childNodes; 
var children = parent.childNodes; 
for(child in children) { 
    if(child.id == "theIdYouAreLookingFor") { 
     parent.style.height = "100%"; 
     // set other CSS rules here 
     // ... 
     break; // we're done, no need to check other children 
    } 
} 
+0

该问题明确要求在CSS中完成。 – Rob

+0

我想答案是否定的:S – Matt

+0

如何修改'html'样式使用javascript? – Hobbyist

相关问题