html - 如何在容器内制作全宽div

标签 html css

<分区>

我喜欢使标题全宽横跨屏幕,包装器为 1052px 并希望在 Logo 和菜单保持原位的情况下扩展它。

有没有办法在响应式布局中将内部 div 扩展到全屏宽度?

如何使用 css 解决此问题,同时牢记“菜单”固定在顶部并且“全宽”div 必须正常滚动?我想我不能使用绝对定位。我希望它很清楚,否则我会尝试改进问题。

这里是header.php代码

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
<head>
    <meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />

    <?php wp_head(); ?>

</head>

<body <?php body_class() ?>>

<div id="wrapper">
    <div id="inner-wrap">
        <div id="header" class="fullwidth">
            <div id="logo">
                <?php if (!option::get('misc_logo_path')) { echo "<h1>"; } ?>

                <a href="<?php bloginfo('url'); ?>" title="<?php bloginfo('description'); ?>">
                    <?php if (!option::get('misc_logo_path')) { bloginfo('name'); } else { ?>
                        <img src="<?php echo ui::logo(); ?>" alt="<?php bloginfo('name'); ?>" />
                    <?php } ?>
                </a>
<div id="header-amp"></div>
                <?php if (!option::get('misc_logo_path')) { echo "</h1>"; } ?>
            </div><!-- / #logo -->


           <nav class="main-navbar" role="navigation">

              <div class="navbar-header">
                  <?php if (has_nav_menu( 'primary' )) { ?>

                     <a class="navbar-toggle" href="#menu-main-slide">
                         <span class="icon-bar"></span>
                         <span class="icon-bar"></span>
                         <span class="icon-bar"></span>
                     </a>


                     <?php wp_nav_menu( array(
                         'container_id'   => 'menu-main-slide',
                         'theme_location' => 'primary'
                     ) );
                 }  ?>


              </div>

              <div id="navbar-main">

                  <?php if (has_nav_menu( 'primary' )) {
                      wp_nav_menu( array(
                          'menu_class'     => 'nav navbar-nav dropdown sf-menu',
                          'theme_location' => 'primary'
                      ) );
                  } ?>

              </div><!-- #navbar-main -->

          </nav><!-- .navbar -->
          <div class="clear"></div>

             <div class="clear"></div>

        </div><!-- / #header-->

       <div id="main">

最佳答案

#inner-wrap{
    width: 100vw; /* make it 100% of the viewport width (vw) */
    margin-left: calc((100% - 100vw) / 2);  /* then remove the gap to the left of the container with this equation */
 }

左边距公式是在容器内获得完整宽度的关键。

首先,我得到负数的容器间隙总大小(因此边距可以为负数):容器的 100% - 窗口大小(100% - 100vw)。

最后,我分成两半(上面的结果是左右两边的,所以我只需要左边的大小)。

总而言之,我将内圈宽度设置​​为与视口(viewport)宽度相同,然后将其向左拉而不使用 position:absolute 或 position:fixed,如果您需要在其下方添加更多内容,这会破坏布局.

如果计算的 100% 大小不正确,您可能需要调整父级。 position:relative 可以提供帮助。

关于html - 如何在容器内制作全宽div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48817028/

上一篇:javascript - 通过 elem.style.somestylingproperty 等 JS 变量选择 css 属性

下一篇:php - 如果返回,在 php 中添加 div 类

相关文章:

jquery - 我怎样才能使这个悬停效果起作用?

javascript - 网页/网站页面中的 Android webview 使用本地 Assets 文件(帮助)

html - Wordpress 导航子/父

python - 静态 django 2 的 TemplateSyntaxError

javascript - 将 CSS 样式规则转换为 HTML 元素(反之亦然)

html - 防止下拉菜单在没有 JavaScript 的情况下隐藏

html - 当列表项超出容器宽度时将其换行

css - Vaadin Flow 深色模式对话框

html - 如何隐藏 html 表单下拉列表中的箭头按钮?

css - 调整 Material 图标的宽度