- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经完成了一个登录表单模板,但我有几个关于改进它的问题。
首先,我希望LOGO图片能和窗口适配,这样你就可以随时看到所有的(不会被截断)
其次,我希望一切都适应较小的窗口(可能是移动窗口)。目前,一旦窗口达到一定大小,一切都会变得杂乱无章。我的想法是将 Logo 和颜色(左侧部分)移动到顶部,并将所有文本捆绑在一起。
下面我将包括所有使用的代码及其当前状态的屏幕截图。
谢谢!
HTML
<!DOCTYPE html>
<html >
<head>
<meta charset="UTF-8">
<title>Belper</title>
<meta name="author" content="Mathieu Larocque">
<title>Bepler</title>
<!-- Meta and Opengraph tags -->
<meta name="description" content="Material Design Login Form for Mediahawkz.com">
<meta name="keywords" content="html, html5, css, css3, material, form, login, google material design, material design, mediahawkz, mediahawkz.com">
<link rel='stylesheet prefetch' href='https://fonts.googleapis.com/icon?family=Material+Icons'>
<link rel='stylesheet prefetch' href='https://fonts.googleapis.com/css?family=Roboto:300'>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<!-- Main content -->
<main role="main">
<div class="mediahawkz-login">
<div class="div-left"></div>
<div class="div-right">
<div class="rkmd-form login">
<h2 class="form-title">Login</h2>
<form id="login" action="" method="POST" onsubmit="return false;">
<div class="form-field">
<label class="field-label" for="emailid">Email ID</label>
<input id="emailid" type="text" name="emailid" class="field-input">
<i class="material-icons md-18">error_outline</i>
</div>
<div class="form-field">
<label class="field-label" for="pass">Password</label>
<input id="pass" type="password" name="pass" class="field-input">
<i class="material-icons md-18">error_outline</i>
</div>
<div class="form-row">
<div class="msg">
<!-- <span class="error">We can't find that email address. Have you registered?.</span> -->
</div>
</div>
<div class="form-row clearfix">
<div class="remember float-left">
<input type="checkbox" name="rem" id="rem">
<label for="rem">Stay Signed in</label>
</div>
<button id="submit" class="rkmd-btn btn-lightBlue ripple-effect float-right">LOGIN</button>
</div>
<div class="form-row clearfix">
<a href="#" data-tab="reset" class="link float-right toggle" onclick="return false;">Forgot your password?</a>
</div>
</form>
</div>
<div class="rkmd-form reset" style="display: none;">
<h2 class="form-title">Reset password</h2>
<form id="reset" action="" method="POST" onsubmit="return false;">
<div class="form-row">
<span class="default">You will receive a link to create a new password via email.</span>
</div>
<div class="form-field">
<label class="field-label" for="emailid">Email ID</label>
<input id="emailid" type="text" name="emailid" class="field-input">
<i class="material-icons md-18">error_outline</i>
</div>
<div class="form-row">
<div class="msg">
</div>
</div>
<div class="form-row clearfix">
<button id="reset" class="rkmd-btn btn-lightBlue ripple-effect float-right">RESET PASSWORD</button>
</div>
<div class="form-row clearfix">
<a href="#" data-tab="login" class="link float-right toggle" onclick="return false;">Login</a>
</div>
</form>
</div>
<div class="copyright">
<p> Copyright © 2000-2017 - Mathieu Larocque - All Rights Reserved. </p>
</div>
</div>
</div>
</main>
<script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
<script src="js/index.js"></script>
</body>
</html>
CSS
body {
margin: 0;
padding: 0;
font-size: 16px;
font-family: 'Roboto', sans-serif;
}
*, *::after, *::before {
-ms-box-sizing: border-box;
-o-box-sizing: border-box;
box-sizing: border-box;
}
a {
color: #03a9f4;
outline: none;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
.link {
color: #575757;
font-size: 14px;
}
.mediahawkz-login {
position: fixed;
top: 0px;
left: 0px;
right: 0px;
bottom: 0px;
width: auto;
height: auto;
background-color: #f9f9f9;
}
.mediahawkz-login .div-left {
position: absolute;
top: 0px;
left: 0px;
bottom: 0px;
width: 50%;
height: 100%;
background-color: #6fa7f7;
background-image: url("http://inddc.in/webroot/assets/img/sample/shortcode/logo/1.png");
background-repeat: no-repeat;
background-size: cover;
background-position: 50% 25%;
}
.mediahawkz-login .div-right {
overflow: auto;
position: absolute;
top: 0px;
right: 0px;
bottom: 0px;
width: 50%;
height: 100%;
}
.mediahawkz-login .copyright {
margin-top: 10%;
text-align: center;
}
.mediahawkz-login .copyright p {
color: #575757;
font-size: 13px;
}
.float-left {
float: left;
}
.float-right {
float: right;
}
.clearfix {
*zoom: 1;
}
.clearfix::after {
content: '';
display: table;
line-height: 0;
clear: both;
}
.rkmd-btn {
display: inline-block;
position: relative;
cursor: pointer;
height: 35px;
line-height: 35px;
padding: 0 1.5rem;
color: #424242;
font-size: 15px;
font-weight: 600;
font-family: 'Roboto', sans-serif;
letter-spacing: .8px;
text-align: center;
text-decoration: none;
text-transform: uppercase;
vertical-align: middle;
white-space: nowrap;
outline: none;
border: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
border-radius: 2px;
-webkit-transition: all .3s ease-out;
transition: all .3s ease-out;
}
.rkmd-btn:hover {
text-decoration: none;
}
.rkmd-btn.btn-lightBlue {
color: #FFF;
background-color: #03a9f4;
box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.225);
}
.rkmd-btn.btn-lightBlue:hover {
box-shadow: 0 2px 10px 0px rgba(0, 0, 0, 0.275);
background-color: #23b9fc;
}
.ripple-effect {
display: inline-block;
position: relative;
overflow: hidden;
cursor: pointer;
vertical-align: middle;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
z-index: 1;
}
.ripple-effect .ripple {
display: block;
position: absolute;
border-radius: 100%;
background: rgba(255, 255, 255, 0.5);
-webkit-transform: scale(0);
transform: scale(0);
pointer-events: none;
}
.ripple-effect .animated {
-webkit-animation: ripple 0.6s linear;
animation: ripple 0.6s linear;
}
@-webkit-keyframes ripple {
100% {
opacity: 0;
-webkit-transform: scale(2.5);
transform: scale(2.5);
}
}
@keyframes ripple {
100% {
opacity: 0;
-webkit-transform: scale(2.5);
transform: scale(2.5);
}
}
.rkmd-form {
max-width: 355px;
margin: 16% auto 0;
}
.rkmd-form .form-title {
margin: 0;
padding: 0;
color: #03a9f4;
font-size: 30px;
font-weight: 300;
}
.rkmd-form .form-row {
display: block;
margin-top: 0.925em;
}
.rkmd-form .remember {
margin-top: 6px;
}
.rkmd-form .form-field {
position: relative;
height: 72px;
margin-top: 1em;
padding: 16px 0 8px 0px;
}
.rkmd-form .form-field i {
display: none;
margin-top: 5px;
float: right;
}
.rkmd-form .form-field::after, .rkmd-form .form-field::before {
content: '';
position: absolute;
left: 0px;
bottom: 8px;
width: 100%;
height: 1px;
background-color: #cdcdcd;
}
.rkmd-form .form-field::after {
background-color: #03a9f4;
-webkit-transition: all 0.3s;
transition: all 0.3s;
-webkit-transform: scaleX(0);
transform: scaleX(0);
}
.rkmd-form .form-field.focused::after {
-webkit-transform: scaleX(1);
transform: scaleX(1);
}
.rkmd-form .field-label {
position: relative;
display: block;
color: #575757;
font-size: 15px;
line-height: 16px;
-webkit-transform: translateY(24px);
transform: translateY(24px);
-webkit-transition: all 0.3s;
transition: all 0.3s;
-webkit-transform-origin: 0 50%;
transform-origin: 0 50%;
}
.rkmd-form .field-input {
position: relative;
display: block;
color: #575757;
width: 100%;
height: 32px;
font-size: 15px;
line-height: 16px;
margin: 0;
padding: 4px 0;
border: none;
outline: none;
background-color: transparent;
}
.rkmd-form .has-label .field-label {
-webkit-transform: translateY(0) scale(0.85);
transform: translateY(0) scale(0.85);
}
.rkmd-form .focused .field-label {
color: #03a9f4;
}
.rkmd-form input[type="checkbox"] + label:before {
display: inline-block;
width: 1em;
color: #6e6e6e;
margin: 0 10px 0 0;
font-family: 'Material Icons';
font-weight: normal;
font-style: normal;
font-size: 24px;
line-height: 1;
text-transform: none;
letter-spacing: normal;
word-wrap: normal;
white-space: nowrap;
direction: ltr;
vertical-align: -6px;
-webkit-transition: -webkit-transform 0.1s ease;
transition: -webkit-transform 0.1s ease;
transition: transform 0.1s ease;
transition: transform 0.1s ease, -webkit-transform 0.1s ease;
/* Support for all WebKit browsers. */
-webkit-font-smoothing: antialiased;
/* Support for Safari and Chrome. */
text-rendering: optimizeLegibility;
/* Support for Firefox. */
-moz-osx-font-smoothing: grayscale;
/* Support for IE. */
-webkit-font-feature-settings: 'liga';
font-feature-settings: 'liga';
}
.rkmd-form input[type="checkbox"] {
position: absolute;
visibility: hidden;
}
.rkmd-form input[type="checkbox"] + label {
cursor: pointer;
color: #575757;
}
.rkmd-form input[type="checkbox"] + label:before {
content: "\e835";
}
.rkmd-form input[type="checkbox"]:checked + label:before {
content: "\e834";
color: #03a9f4;
}
.rkmd-form input[type="checkbox"]:active:not(:disabled) + label:before {
-webkit-transform: scale3d(0.88, 0.88, 1);
transform: scale3d(0.88, 0.88, 1);
}
.rkmd-form input[type="checkbox"]:disabled + label:before {
content: "\e909";
cursor: not-allowed;
color: rgba(0, 0, 0, 0.157);
}
.rkmd-form .form-field[error]::after, .rkmd-form .form-field[error]::before {
background-color: #f44336 !important;
}
.rkmd-form .form-field[error] .field-label {
color: #f44336 !important;
}
.rkmd-form .form-field[error] i {
display: block;
color: #f44336 !important;
}
.rkmd-form .msg {
min-height: 20px;
}
.rkmd-form .error {
display: block;
margin: 0;
padding: 0;
color: #f44336 !important;
font-size: 14px;
}
.rkmd-form .default {
color: #575757 !important;
font-size: 14px;
}
JS
$(document).ready(function() {
$(".rkmd-form").rkmd_form();
$(".ripple-effect").rkmd_rippleEffect();
});
(function($) {
$.fn.rkmd_form = function() {
var self, formField, formInput;
self = $(this);
formField = self.find(".form-field");
formInput = self.find(".field-input");
formInput.on("focus", function() {
$(this)
.parent()
.addClass("focused has-label");
});
formInput.on("blur", function() {
if ($(this).val() == "") {
$(this)
.parent()
.removeClass("has-label");
}
$(this)
.parent()
.removeClass("focused");
});
formInput.each(function() {
self = $(this);
if (self.val().length > 0) {
self.parent().addClass("has-label");
}
});
};
$.fn.rkmd_rippleEffect = function() {
var btn, self, ripple, size, rippleX, rippleY, eWidth, eHeight;
btn = $(this).not("[disabled], .disabled");
btn.on("mousedown", function(e) {
self = $(this);
if (e.button === 2) {
return false;
}
if (self.find(".ripple").length === 0) {
self.prepend('<span class="ripple"></span>');
}
ripple = self.find(".ripple");
ripple.removeClass("animated");
eWidth = self.outerWidth();
eHeight = self.outerHeight();
size = Math.max(eWidth, eHeight);
ripple.css({ width: size, height: size });
rippleX = e.clientX - self.offset().left - size / 2;
rippleY = e.clientY - self.offset().top - size / 2;
ripple.css({ top: rippleY + "px", left: rippleX + "px" });
ripple.addClass("animated");
});
};
})(jQuery);
$("#submit").on("click", function() {
var form = $("#login");
var emailid = form.find("#emailid");
var pass = form.find("#pass");
if (emailid.val() == "") {
emailid.parent().attr("error", "");
} else {
emailid.parent().removeAttr("error");
}
if (pass.val() == "") {
pass.parent().attr("error", "");
} else {
pass.parent().removeAttr("error");
}
});
$("#reset").on("click", function() {
var form = $("#reset");
var emailid = form.find("#emailid");
if (emailid.val() == "") {
emailid.parent().attr("error", "");
} else {
emailid.parent().removeAttr("error");
}
});
$(".toggle").on("click", function() {
var tab = $(this).data("tab");
var parents = $(this)
.parents(".rkmd-form")
.hide();
$("." + tab).show();
});
模板归功于 MediaHawkz.com,我对编码很陌生,使用了免费模板网站上的这个模板。
最佳答案
您的 Logo 问题可以通过将 background-size:cover 切换为 background-size contain 来解决:
.mediahawkz-login .div-left {
...
background-size: contain;
...
}
移动部分(称为“响应式”)是通过一些简单的技巧完成的。这里要解释的太多了,但基本原则是:
使用@media 查询更改不同尺寸设备的设计规则:
.mediahawkz-login .div-left {
float:left;
width: 100%;
min-height:100px;
}
@media (min-width:600px){
.mediahawkz-login .div-left {
width:50%;
min-height:100%;
}
首先为移动设备设计,然后使用媒体查询更改大屏幕的布局。这被称为“移动优先”设计,如果您这样想,代码会变得不那么困惑。
使用 css "float"元素使左右元素相互移动。您的模板(顺便说一句,它没有很好的 CSS)使用绝对定位……对于响应式设计来说并不总是一个好的选择。
这是一个代码笔,标识和定位固定。我只需要更改 CSS 中的 2 个元素; .mediahawkz-login .div-left
和 .mediahawkz-login .div-right
。水平或垂直缩小窗口,看看会发生什么......
关于css - 图像大小调整和大小适配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46633104/
我是 Javascript 新手,所以请原谅基本代码。有什么方法可以让我使用用户输入的指定调整来打印代码? height: width: 最佳答案 为按钮
我有一个带有 A 框架的场景,我正在使用方法 getCanvas 来获取屏幕截图并将其发送到 PHP。有没有办法调整 getCanvas 图像大小?因为默认的是 4096x2048,我需要它更小。如果
安排自动“分析表”的方法是什么。当大量数据通过插入和删除发生更改时,是否可以请求自动“分析表”?参数化自动分析表过程的方法是什么,即设置何时应该触发的规则。 最佳答案 您使用的是哪个版本的 Oracl
我只是想说,我是 C 语言的新手。好吧,除此之外,我在圣诞假期的任务是编写一个以各种方式操作 PNG 图像的程序。我已经完成了大部分事情,但是在尝试编写放大图像的程序时遇到了问题。我已经尝试过了,并且
在 Postgres 中编写更快查询的有效方法是什么?请不要包括一般良好的数据库实践(例如使用索引或规范化)。我正在寻找像派生表比子查询工作得更快或使用 python 字符串函数似乎比 pgsql 字
我不知道自己做了什么,但我要么将页眉和导航向右移动,要么将页面的其余部分向左移动。使用 tw Bootstrap 。我想不通。我对它进行了调试并查看了我的 css 编辑,没有看到任何负边距(我怀疑是这
我希望能够增加默认字体大小,但只能在特定的 DIV 内。 很明显,这似乎正是 ems 所针对的那种情况。我的问题是我只想增加字体大小,而不影响使用em设置大小的其他内容,例如填充和边距。 这可能看起来
我正在我的大学上数据挖掘类(class)。我真的不明白这个问题。谁能帮我理解一下? 最佳答案 重要性权重让您了解在采样时找到特定数据点的频率。您可以使用它来增加训练数据集。例如,如果您只有两个数据点:
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我的部分程序如下所示: char *argVector[] = {"./doTasks","0", "1", "3", NULL}; int numChild = 3; int temp; char
我在调整 QWindow 大小时观察到一个奇怪的行为。当我调整窗口大小时使宽度和高度都增加或减少时,窗口不会以白色背景闪烁。但是当我增加宽度同时减小高度(或反之亦然)时,窗口会闪烁并暂时用白色填充新的
我在使用 ggplot2 创建图形时遇到问题。我正在使用带有中心堆叠的 geom_dotplot 来显示我的数据,这些数据是 4 个类别的离散值。 出于审美原因,我想自定义点的位置,这样 沿 y 轴减
在尝试让我的 Canvas/Stage 调整大小并使其正确适合父容器时遇到一些问题。我发现了其他类似的帖子,虽然答案确实帮助我获得了新的屏幕尺寸,但它仍然不想适应容器,而是直接进入屏幕的边缘(这在示例
我想将路径大小调整为 20 像素左右。 SVG 的大小应为 500 * 500,现在路径宽度为 297,高度为 180.7。现在我需要这条路径,其宽度为 277,高度为 160.7,在之前的路径中。
我有一个矩形 svg,可以围绕二维平面拖动,围绕它自己的原点旋转并调整大小。 class SVG extends React.Component { constructor(props) {
我一直在尝试调整 MLP 模型的超参数来解决回归问题,但我总是收到收敛警告。 这是我的代码 def mlp_model(X, Y): estimator=MLPRegressor() param_gr
我正在创建一个聊天应用程序,我希望 ScrollView 的内容位于输入字段下方(向上滚动时)。我已经将 ScrollView 和输入字段放在 ZStack 中。 ScrollView 上的底部填充使
我遇到 GC 来不及删除空闲对象的情况。该代码将一个大文档加载到内存中并循环处理它。如果我在此循环中停止(在 Debug模式下)或添加 GC.Collect(),内存使用量将下降到 70 MB 以下。
我正在使用 iTextSharp 和 PdfSharp 的组合来组装一个大型 PDF 文件,以便打印到 Canon Oce VarioPrint 6000 系列打印机。 PDF 正在替换后记文件。 这
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我是一名优秀的程序员,十分优秀!