灵活宽度居中模态窗口

发布于 2024-12-02 13:22:12 字数 204 浏览 0 评论 0原文

有谁知道有一种方法可以让模态窗口弹出窗口具有灵活的宽度(例如屏幕宽度的%),并且始终居中,至少在调用它时是这样。

我准备用 js/jQuery 自己编写这个代码(通过一个可以发送最小宽度、百分比和最大宽度的函数),但我想知道预制的解决方案以避免重新发明轮子(特别是如果它们没有带来繁琐的框架)。

现在我在 Windows 上使用 jqModal,我喜欢它的简单性

Does anyone know of a way to have a modal window pop-up that can have a flexible width (say % of the screen width) that is always centered, at least when it's invoked.

I am about to code this myself in js/jQuery (via a function that you can send min-width, percentage, and max width to), but it I'm wondering about pre-made solutions to avoid re-inventing the wheel (especially if they don't arrive with cumbersome frameworks).

Right now I'm using jqModal for the windows and I like it for its simplicity

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

老旧海报 2024-12-09 13:22:12

您是否尝试过 jquery 模式选项

对话框的宽度(以像素为单位)。

$( ".selector" ).dialog({ width: 460 });

http://jqueryui.com/demos/dialog/#option-width

Did you try jquery modal options

The width of the dialog, in pixels.

$( ".selector" ).dialog({ width: 460 });

http://jqueryui.com/demos/dialog/#option-width

╰つ倒转 2024-12-09 13:22:12

这是我设计的一种方法,用于创建具有您描述的所有功能的流体模式,而且作为奖励,它在 95% 的情况下甚至不需要任何 JavaScript,只需要 HTML 和 CSS! - http://www .backalleycoder.com/2011/11/16/best-damn-modal-method-period%E2%84%A2/ - 下面我粘贴了它使用的 HTML 和 CSS,博客文章包含更长、更详细的解释和现场演示。

HTML 结构:

<table id="modal">
  <tbody id="modal-tbody">
    <tr id="modal-tr">
      <td id="modal-td">
        <div id="modal-content">
            <div id="modal-body">
               Some modalicious content here for your  viewing  pleasure!
            </div>
        </div>
      </td>
    </tr>
  </tbody>
</table>

您需要的 CSS:

html, body
{
    height: 100%; /* root and body MUST be height 100% */
}

#modal
{
    position: fixed;
    top: 0;
    left: -100%;
    height: 100%;
    width: 100%;
}

#modal-tbody, #modal-tr, #modal-td
{
    height: 100%; /* All table elements should be height 100% */
}

#modal-td
{
    vertical-align: middle;
}

#modal-content
{
    position: relative;
    left: 100%;
    height: auto; /* HEIGHT optional, any unit */
    width: 50%; /* WIDTH optional, any unit */
    max-height: 80%; /* MAX-HEIGHT optional, if height auto, must be % */
    min-height: 80px; /* MIN-HEIGHT optional, any unit */
    max-width: 225px; /* MAX-WIDTH optional, any unit */
    min-width: 80px; /* MIN-WIDTH optional, any unit */
    margin: 0 auto;
    border: 1px solid;
    background: #eaeaea;
    overflow: auto;
}

Here's a method I devised to create fluid modals with all the features you described, and as a bonus, it doesn't even require any JavaScript in 95% of cases, just HTML and CSS! - http://www.backalleycoder.com/2011/11/16/best-damn-modal-method-period%E2%84%A2/ - below I have pasted the HTML and CSS it uses, the blog post contains a much longer, more detailed explanation and a live demo.

The HTML structure:

<table id="modal">
  <tbody id="modal-tbody">
    <tr id="modal-tr">
      <td id="modal-td">
        <div id="modal-content">
            <div id="modal-body">
               Some modalicious content here for your  viewing  pleasure!
            </div>
        </div>
      </td>
    </tr>
  </tbody>
</table>

The CSS you'll need:

html, body
{
    height: 100%; /* root and body MUST be height 100% */
}

#modal
{
    position: fixed;
    top: 0;
    left: -100%;
    height: 100%;
    width: 100%;
}

#modal-tbody, #modal-tr, #modal-td
{
    height: 100%; /* All table elements should be height 100% */
}

#modal-td
{
    vertical-align: middle;
}

#modal-content
{
    position: relative;
    left: 100%;
    height: auto; /* HEIGHT optional, any unit */
    width: 50%; /* WIDTH optional, any unit */
    max-height: 80%; /* MAX-HEIGHT optional, if height auto, must be % */
    min-height: 80px; /* MIN-HEIGHT optional, any unit */
    max-width: 225px; /* MAX-WIDTH optional, any unit */
    min-width: 80px; /* MIN-WIDTH optional, any unit */
    margin: 0 auto;
    border: 1px solid;
    background: #eaeaea;
    overflow: auto;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文