【问题标题】:Different css margins for mobile & desktop without multiple {% block content %} in Django templateDjango模板中没有多个{% block content %}的移动和桌面的不同css边距
【发布时间】:2018-04-27 10:07:15
【问题描述】:

我需要根据查看者使用的是移动设备还是桌面设备来更改在我的base.html 模板(包含我的导航栏和其他常见元素)中应用于我的主{% block content %} 的左边距。

我现在的base.html 是这样的:

<div class="content container-fluid">
    <div class="row">
        <div class="col-md-8">
            {% block content %}
            {% endblock %}
        </div>
    </div>
</div>

使用包含以下内容的 css 文件:

.content {
    margin-left: 40px;
}

.content_mobile {
    margin-left: 10px;
}

鉴于在我的应用程序的其他部分,我已经通过使用以下专用的 Bootstrap 类完成了类似的事情,我的第一个想法是使用类似的东西来做同样的事情:

<div class=".visible-xs-block, hidden-xs">
    <div class="content container-fluid">
        <div class="row">
            <div class="col-md-8">
                <!-- This is hidden from mobile view -->
                {% block content %}
                {% endblock %}
            </div>
        </div>
    </div>
</div>

<div class=".visible-lg-block, hidden-lg .visible-md-block, hidden-md .visible-sm-block, hidden-sm">
    <div class="content_mobile container-fluid">
        <div class="row">
            <div class="col-md-8">
                <!-- This is hidden from all other views (including desktop) -->
                {% block content %}
                {% endblock %}
            </div>
        </div>
    </div>
</div>

但是 Django 引发了一个异常,因为它每个模板只能渲染 1 个{% block content %}

有什么想法可以在不使用多个块的情况下做到这一点吗?

【问题讨论】:

  • 使用媒体查询@media (max-width: 480px) {margin-left: 10px;}
  • 感谢维克马瑟的建议!这应该放在我的 CSS 的 .content { 部分还是单独一行?

标签: css django twitter-bootstrap twitter-bootstrap-3 django-templates


【解决方案1】:

例子:

<div class="content">Some thing </div>

你想根据显示的大小给出不同的边距

比这样做

在你常用的 css 中:

@media (max-width: 480px) {
    .content{
       margin-left: 20px;
    }
}

@media (max-width: 320px) {
    .content{
       margin-left: 10px;
    }
}

@media (min-width:320px)  { /* smartphones, portrait iPhone, portrait 480x320 phones (Android) */ }
@media (min-width:480px)  { /* smartphones, Android phones, landscape iPhone */ }
@media (min-width:600px)  { /* portrait tablets, portrait iPad, e-readers (Nook/Kindle), landscape 800x480 phones (Android) */ }
@media (min-width:801px)  { /* tablet, landscape iPad, lo-res laptops ands desktops */ }
@media (min-width:1025px) { /* big landscape tablets, laptops, and desktops */ }
@media (min-width:1281px) { /* hi-res laptops and desktops */ }

【讨论】:

  • 搞定了!感谢您的快速回答,这就是我喜欢这个地方的原因:)
  • 可以在here 找到指向 Apple 布局/尺寸的链接,并应与 resolution scaling 一起使用以得出视口大小。
猜你喜欢
  • 2014-02-23
  • 2016-01-03
  • 2019-08-06
  • 2018-10-07
  • 1970-01-01
  • 1970-01-01
  • 2020-11-21
  • 1970-01-01
相关资源
最近更新 更多