为啥我的 HTML 表单在 Sharepoint 和 jsfiddle 中的显示不同?

Posted

技术标签:

【中文标题】为啥我的 HTML 表单在 Sharepoint 和 jsfiddle 中的显示不同?【英文标题】:Why are my HTML forms appearing differently in Sharepoint and jsfiddle?为什么我的 HTML 表单在 Sharepoint 和 jsfiddle 中的显示不同? 【发布时间】:2015-10-25 19:37:49 【问题描述】:

我正在这个 fiddle 中模拟一个 Sharepoint Web 部件,它目前看起来像这样(如您所见,第二个表单尚未格式化/对齐):

(即使这样,除了第二种形式的丑陋格式之外,也不完美,因为第二种形式在我希望的位置下方对齐了一个“行”)。

我在 Sharepoint Web 部件上使用完全相同的 CSS 和 html,但有很大不同:

我想要第二个表格在右边,而不是在第一个表格的下方。不过,Sharepoint 表示似乎并没有限制表单宽度以允许这样做。为什么会有差异?如何让 Sharepoint 网页更接近 jsfiddle 版本?

这是代码(同样,两个地方完全相同):

CSS

.underline 
    text-decoration: underline;

input[placeholder] 
    font-size: 0.6em;
    width: 500;

.firstblocklabel 
    width: 160px;
    display: inline-block;
    margin: 2px;

.firstblockdatelabel 
    width: 108px;
    display: inline-block;

.firstblockinput 
    width: 224px;

.dateinput 
    width: 124px;
    margin: 2px;

.timeinput 
    width: 100px;

form 
    display: inline-block;
    vertical-align:top;
    //float: left;

.borderedform 
    border: 1px solid;
    margin: 1em;
    padding: 1em;

.reditalics 
    color: red;
    font-style: italic;

.wrappedlabel  width: 320px; display: block; 

HTML

<h2 class="underline">UCSC POST TRAVEL EXPENSE</h2>

<label>Form Filled Out:</label>
<input type="date" style="width=100px"></input>
<label>Access the <a href="https://financial.ucsc.edu/Pages/travel_guide.aspx#Travel_Expense_Report" target="_blank">Post Travel Guide</a> for reimbursement validation</label>
<br/>
<br/>
<form>
    <label class="firstblocklabel">Traveler's name:</label>
    <input class="firstblockinput" type="text" id="travelername" title="Last Name, First Name, Middle Initial" />
    <br/>
    <label class="firstblocklabel">Traveler's E-mail:</label>
    <input class="firstblockinput" type="email" id="traveleremail" />
    <br/>
    <label class="firstblocklabel">Traveler's Phone:</label>
    <input class="firstblockinput" type="tel" id="travelerphone" />
    <br/>
    <label class="firstblocklabel">Traveler's Mail Stop:</label>
    <input class="firstblockinput" type="text" id="travelermailstop" />
    <br/>
    <label class="firstblocklabel" id="travelerstreetorpoboxlabel">Traveler's Street or P.O.:</label>
    <input class="firstblockinput" type="text" id="travelerstreetorpobox" />
    <br/>
    <label class="firstblocklabel">Traveler's Destinations:</label>
    <input class="firstblockinput" type="text" id="travelersdestinations" />
    <br/>
    <label class="firstblocklabel">UC Business Purpose:</label>
    <input class="firstblockinput" type="text" id="ucbusinesspurpose" />
    <br/>
    <label class="firstblockdatelabel">Departure Date:</label>
    <input class="dateinput" type="date" id="travelersdeparturedate" />
    <label>Time:</label>
    <input class="timeinput" type="time" id="travelersdeparturetime" />
    <br/>
    <label class="firstblockdatelabel">Return Date:</label>
    <input class="dateinput" type="date" id="travelersreturndate" />
    <label>Time:</label>
    <input class="timeinput" type="time" id="travelersreturntime" />
</form>
<form class="borderedform">
    <label>Trip Number:</label>
    <input type="text" id="tripnumber" title="If Applicable" />
    <br/>
    <label>Form prepared by:</label>
    <input type="text" id="formpreparedby" />
    <hr/>
    <label>Dept / Division</label>
    <input type="text" id="deptdivision" />
    <br/>
    <label>Email:</label>
    <input type="email" id="email" />
    <label>Ext:</label>
    <input type="text" id="extension" />
    <hr/>
    <label class="reditalics">Required:</label>
    <label>US Citizen - YES</label>
    <input type="radio" id="uscitizenyes" value="YES" />
    <label>NO</label>
    <input type="radio" id="uscitizenno" value="NO" />
    <br/>
    <input type="radio" id="visitor" />Visitor
    <label>Foreign Visa Type:</label>
    <select title="Please select a visa type">
        <option value="pleaseselect">Please Select</option>
        . . .
    </select>
    <br/>
    <input type="radio" id="ucstudent" />UC Student
    <br/>
    <input type="radio" id="ucemployee" />UC Employee
    <label>UC Campus:</label>
    <select title="Please select a campus">
        <option value="pleaseselect">Please Select</option>
        . . .
    </select>
    <br/>
    <label class="wrappedlabel"><span style="color:red">Note: </span>If traveler chooses to include personal travel, record times/dates based only on the business portion of the trip. Provide explanation of personal travel.</label>
</form>

更新

添加 Sully 的 CSS 和 HTML,jsfiddle 看起来更好,但对 Sharepoint Web 部件的相同添加并没有改变它。

也许 Sharepoint 不允许多个表单位于同一“行”上?

更新 2

不幸但并不奇怪,它在 Chrome 中看起来不同(另一个非小提琴尖叫镜头是 IE):

【问题讨论】:

【参考方案1】:

尝试制作您的表单float:left

奖励:对于有边框的表单,使用 margin-left 而不是仅仅使用 margin 来移除顶部的垂直空间。

CSS

.firstform  float: left; 
.borderedform 
    float: left;
    border: 1px solid;
    margin-left: 1em;
    padding: 1em;

要使用该 CSS,请将class="firstform" 添加到第一个表单。

http://jsfiddle.net/z8y6L303/

【讨论】:

这有助于 jsfiddle,但 Sharepoint 表单仍然与这些添加搞砸了;有关 Sharepoint 表单的当前视图,请参阅上面的更新。 要查看是否是 Sharepoint 将 CSS 应用于表单,我会尝试强制向左浮动:“float: left !important”,但请注意,我不建议保留 !important,它不是把那些洒在身上很有趣。如果 !important “修复”了对齐问题,我们可以比使用 !important 做得更好。

以上是关于为啥我的 HTML 表单在 Sharepoint 和 jsfiddle 中的显示不同?的主要内容,如果未能解决你的问题,请参考以下文章

为啥这个 jQuery 在我的 Sharepoint 页面上不起作用?

为啥我的 html 表单中的数据没有提交?

Access 将 HTML div 放入链接的 SharePoint 表中

SharePoint 自定义列表表单不验证必填字段

在SharePoint 2010页面上使用POST方法添加表单?

SPException 错误代码和含义(通过 SharePoint REST 服务刷新表单请求摘要)