使用Chrome开发者工具中的SAPUI5扩展Inspector修改Grid控件的defaultSpan属性会触发如下代码:我们可以发现SAP通过调用栈调用UI5Grid相关的框架代码,确实是Chrome扩展UI5Inspector触发的:相关代码:GridRenderer:外层网格容器占据整个屏幕宽度:第一个表单容器:占据1/2thescreenWidth:66612但这里是33612:获取网格的宽度:默认值:33612Form容器中的每个元素都没有显式分配宽度,对吧?至少在GridRender.js中根据源码搜索没有找到。这说明使用了其他方法来控制Grid中元素的相对位置。根据调试发现这个css类控制了50%的宽度Display:.sapUiRespGridSpanL6改成80%后变宽了:label16.67%2/12等于六分之一:为什么是2?但是为什么选择L2而不是M3呢?切换到iPhone后:.sapUiRespGridMedia-Std-Phone.sapUiRespGridHSpace0>.sapUiRespGridSpanS4CSS类名变了,类型从Desktop变成了Phone.4除以12等于1/3。切换到Tablet、M3、quarterOne之后:25%出现在CSS类中的设备名称,无论是Desktop、Tablet还是Phone,都是根据各种指标对使用过的设备进行的基本分类。这些指标的示例包括对触摸事件的支持、使用的操作系统和浏览器的用户代理。注意:没有简单的方法可以根据浏览器提供的信息准确地确定正在使用的设备。因此,我们严重依赖用户代理。因此,可以结合给定的设备功能将多个标志设置为真,特别是对于支持触摸的桌面设备和将网页请求为桌面页面的移动设备。
