1

我正在构建一个必须在“小”屏幕(1024*768)或更高分辨率屏幕上工作的应用程序。

我在应用程序中有一个页面,其中一些项目显示在两列中。但是在“小”屏幕上,项目的宽度太大而无法保持良好的布局,所以我想将列数减少到一。这些列是使用<ul>包含属性构建的(这实际上是一个 jQuery 可排序插件输出)。<li>float:left

我的页面行为是允许用户在“源”列表和“目标”列表之间拖放项目以选择项目(这是有效的,如果有帮助,我可以粘贴代码)。

为了解决这个问题,我尝试设置一个媒体查询。

在我的 css 文件中,我有:

.sourceItems, .targetItems {
    list-style-type: none;
    float: left;
    margin: 0;
    padding: 0;
    margin-right: 10px;
    background: #eee;
    padding: 5px;
    border: solid 1px black;
    height: 400px;
    overflow: auto;
}

.sourceItems {
    width: 530px;
}

.targetItems {
    width: 280px;
}

    .sourceItems li, .targetItems li {
        border: solid 1px black;
        float: left;
        margin: 4px;
        padding: 4px;
        width: 220px;
        min-height: 10px;
        cursor: move;
        background-image: url('/_layouts/images/personresult.gif') !important;
        background-repeat: no-repeat !important;
        padding-left: 20px;
        background-color: #DFEFFC;
        background-position: left center !important;
    }

        .sourceItems li.user, .targetItems li.user {
        }

        .sourceItems li.entity, .targetItems li.entity {
            background-position: left center;
            border: solid 1px black;
            float: left;
            margin: 4px;
            padding: 4px;
            width: 200px;
            background-image: url('/_layouts/images/peopletitle.png') !important;
            font-size: 1.1em;
            height: 50px;
            cursor: move;
            padding-left: 40px;
            background-color: #CCFF99;
            background-repeat: no-repeat !important;
            vertical-align: middle;
        }

@media screen and (max-width: 1024) {
    .sourceItems {
        width: 200px;
    }

    .targetItems {
        width: 200px;
    }

        .sourceItems li, .targetItems li {
            margin: 2px;
            padding: 2px;
            width: 180px;
            min-height: 10px;
            background-image: url('/_layouts/images/personresult.gif') !important;
            -moz-background-size: 50%;
            -o-background-size: 50%;
            -webkit-background-size: 50%;
            background-size: 50%;
            background-repeat: no-repeat !important;
            padding-left: 10px;
            font-size: 1.1em;
        }

            .sourceItems li.user, .targetItems li.user {
            }

            .sourceItems li.entity, .targetItems li.entity {
                -moz-background-size: 50%;
                -o-background-size: 50%;
                -webkit-background-size: 50%;
                background-size: 50%;
                margin: 2px;
                padding: 2px;
                width: 180px;
                background-image: url('/_layouts/images/peopletitle.png') !important;
                font-size: 1.1em;
                height: 30px;
                padding-left: 20px;
            }
}

但是,这在页面加载时没有区别(元素总是两列大)。

不知道它是否有帮助,但这里是 DOM 的转储(来自 IE 开发人员工具):

<UL class="sourceItems droptrue ui-sortable" jQuery172019945692622544986="151">
  <LI class="ui-state-default entity" jQuery172019945692622544986="75">some item 1</LI>
  <LI class="ui-state-default entity" jQuery172019945692622544986="76">some item 2</LI>
  <LI class="ui-state-default entity" jQuery172019945692622544986="77">some item 3</LI>
  <LI class="ui-state-default entity" jQuery172019945692622544986="78">some item 4</LI>
  <LI class="ui-state-default entity" jQuery172019945692622544986="79">some item 5</LI>
  <LI class="ui-state-default entity" jQuery172019945692622544986="80">some item 6</LI>
  <LI class="ui-state-default entity" jQuery172019945692622544986="81">some item 7</LI>
  <LI class="ui-state-default entity" jQuery172019945692622544986="82">some item 8</LI>
</UL>
<UL class="targetItems droptrue ui-sortable" jQuery172024919617247411335="152"></UL>

这是带有“大屏幕”的输出屏幕截图:

在大屏幕上

这是带有“小屏幕”的输出屏幕截图:

在小屏幕上

这是“小屏幕”上所需输出的屏幕截图(使用 IE 开发工具调整 dom 以生成屏幕截图:

期望的结果

我将不胜感激任何可能有助于解决此问题的帮助。

4

1 回答 1

1

您在中缺少长度px/cm/in前缀

@media screen and (max-width: 1024) {
                              ^^^^ // Missing px   

演示- (不工作)

它应该是:

@media screen and (max-width: 1024px) {
                                  ^^ // Added px

演示- (工作)

见参考

于 2012-08-30T08:06:39.517 回答