我想确定<details>
是否是块级元素。我问的原因是:
<details>
不在列表中。和
<details>
的Codepen。当您在Firefox(54.0.1)中打开此Codepen并检查<details>
元素时,它是inline
但是当您在Chrome中打开相同的Codepen(59.0.3071)时,相同的元素设置为{用户代理样式表{1}}。 block
元素是内联还是阻止,还是依赖于浏览器?
答案 0 :(得分:2)
<details>
元素表现为块级元素。为了测试这个,我打开了一个jsfiddle,添加了一个<details>
元素并进行了检查。我也能把它设置为内联就好了。
当前版本的Microsoft Edge不支持此元素,因此我不建议在生产环境中使用它。
编辑:我忘记评论您的Firefox观察,我的Firefox版本是最新的,并将其显示为块元素。答案 1 :(得分:1)
在这样的事情上:
private class CustomAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private static final int TYPE_1 = 1;
private static final int TYPE_2 = 2;
private static final int TYPE_3 = 3;
// more types...
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
switch (viewType) {
case TYPE_1: inflate view_type_1
break;
case TYPE_2: inflate view_type_2
break;
case TYPE_3: inflate view_type_3
break;
}
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
switch (getItemViewType(position)) {
case TYPE_1:
break;
case TYPE_2:
break;
case TYPE_3:
break;
}
}
@Override
public int getItemViewType(int position) {
if(position == 1) {
return TYPE_1;
} else if(position == 2) {
return TYPE_2;
} else
return TYPE_3
}
}
...... W3C HTML Validator说:
在此上下文中,元素details不允许作为元素span的子元素。
可以使用元素details的上下文:
预计flow content的位置 元素span的内容模型:
Phrasing content
如果您按照两种内容类型的链接,您会发现两个不同的标记列表,并且许多标记属于两者。
我怀疑块/内联差异是HTML早期的一个关键概念,但它不再相关。 HTML5和CSS3都没有定义为元素必须明确匹配其中一个类别的术语。