Да, у Вас может быть toooooo много хранимых процедур.
Соглашения о присвоении имен могут действительно помочь с этим. Например, если у Вас есть соглашение о присвоении имен, где Вы всегда имеете имя таблицы и InsUpd или Добираетесь, довольно легко найти право хранимая процедура при необходимости в нем. Если бы у Вас нет некоторого стандартного соглашения о присвоении имен, было бы действительно легко придумать два (или больше) процедуры, которые делают почти точно то же самое.
было бы легко найти несколько после, не имея стандартизированного соглашения о присвоении имен... usp_GetCustomersOrder, CustomerOrderGet_sp, GetOrdersByCustomer_sp, spOrderDetailFetch, GetCustOrderInfo, и т.д.
, Другая вещь, которая начинает происходить, когда у Вас есть много хранимых процедур, состоит в том, что у Вас будут некоторые хранимые процедуры, которые никогда не используются и некоторые, которые просто редко используются... Если у Вас не будет некоторого способа отследить использование хранимой процедуры, то Вы или закончите с большим количеством неиспользованных процедур... или хуже, избавляющийся от одной, Вы думаете никогда, не используется и узнающий впоследствии, что это только используется один раз в год или однажды четверть.: (
Jeff
Ну, как оказалось, мне удалось решить проблему самостоятельно. Я взломал демо - , проверь .
По сути, требуется несколько дополнительных элементов DOM и значительное количество CSS. И, как упоминалось в ссылке, предоставленной @Steve, необходим сплошной фон. Я не верю, что есть какой-либо способ сделать это на градиентном фоне или по другому шаблону.
Я закончил с HTML, как это:
ul.selectable {
padding-top: 1em;
padding-bottom: 1em;
width: 50%;
float: left;
}
ul.selectable li {
margin: 0 3em 0 4em;
border-radius: 8px;
-webkit-border-radius: 8px;
-khtml-border-radius: 8px;
-moz-border-radius: 8px;
}
ul.selectable li.active {
margin-right: 0;
}
ul.selectable li.active dl {
background-color: #4f9ddf;
}
ul.selectable li dt {
background-color: #dfd24f;
padding: 1em;
margin-left: -2em;
margin-right: -2em;
-webkit-border-radius: 8px;
-khtml-border-radius: 8px;
-moz-border-radius: 8px;
border-radius: 8px;
}
ul.selectable li dd {
padding: 0.25em;
background-color: #fff;
}
ul.selectable li.active dt {
background-color: #4f9ddf;
margin-right: 0;
-webkit-border-top-right-radius: 0;
-webkit-border-bottom-right-radius: 0;
-khtml-border-top-right-radius: 0;
-khtml-border-bottom-right-radius: 0;
-moz-border-radius-topright: 0;
-moz-border-radius-bottomright: 0;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
ul.selectable li.active dd.top {
-webkit-border-bottom-right-radius: 8px;
-khtml-border-bottom-right-radius: 8px;
-moz-border-radius-bottomright: 8px;
border-bottom-right-radius: 8px;
}
ul.selectable li.active dd.bot {
-webkit-border-top-right-radius: 8px;
-khtml-border-top-right-radius: 8px;
-moz-border-radius-topright: 8px;
border-top-right-radius: 8px;
}
div.right {
float: left;
padding-top: 3em;
width: 50%;
}
div.content {
height: 15em;
width: 80%;
background-color: #4f9ddf;
padding: 1em;
-webkit-border-radius: 8px;
-khtml-border-radius: 8px;
-moz-border-radius: 8px;
border-radius: 8px;
}
<ul class="selectable">
<li>
<dl>
<dd class="top"></dd>
<dt>Title</dt>
<dd class="bot"></dd>
</dl>
</li>
<li class="active">
<dl>
<dd class="top"></dd>
<dt>Title</dt>
<dd class="bot"></dd>
</dl>
</li>
<li>
<dl>
<dd class="top"></dd>
<dt>Title</dt>
<dd class="bot"></dd>
</dl>
</li>
</ul>
<div class="right">
<div class="content">This is content</div>
</div>
Я не оптимизировал ни один из CSS как я только что взломал это вместе. Но, возможно, это поможет кому-то еще. Я проверял это только в Google Chrome на Mac OSX.
См. Скрипку (или другое ), который использует этот html:
<ul class="selectable">
<li>Title</li>
<li class="active">Title</li>
<li>Title</li>
<li>Title</li>
</ul>
<div class="right">
<div class="content">This is content</div>
</div>
И этот CSS (ключ должен позволить border-radius
и border-width
на псевдоэлементах сделать для вас перевернутый круг; опущен код gradient
.):
ul.selectable {
padding-top: 1em;
padding-bottom: 1em;
width: 50%;
float: left;
}
ul.selectable li {
margin: 1em 1em 1em 2em;
padding: 1em;
border-radius: 8px;
-webkit-border-radius: 8px;
-khtml-border-radius: 8px;
-moz-border-radius: 8px;
background-color: #dfd24f;
position: relative;
}
ul.selectable li.active {
margin-right: 0;
background-color: #4f9ddf;
-webkit-border-top-right-radius: 0;
-webkit-border-bottom-right-radius: 0;
-khtml-border-top-right-radius: 0;
-khtml-border-bottom-right-radius: 0;
-moz-border-radius-topright: 0;
-moz-border-radius-bottomright: 0;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
ul.selectable li.active:before,
ul.selectable li.active:after {
content: '';
position: absolute;
left: 100%; /* I use this instead of right: 0 to avoid 1px rounding errors */
margin-left: -8px; /* I use this because I am using left: 100% */
width: 8px;
height: 8px;
border-right: 8px solid #4f9ddf;
z-index: -1;
}
ul.selectable li.active:before {
top: -8px;
border-bottom: 8px solid #4f9ddf;
-webkit-border-bottom-right-radius: 16px;
-khtml-border-bottom-right-radius: 16px;
-moz-border-radius-bottomright: 16px;
border-bottom-right-radius: 16px;
}
ul.selectable li.active:after {
bottom: -8px;
border-top: 8px solid #4f9ddf;
-webkit-border-top-right-radius: 16px;
-khtml-border-top-right-radius: 16px;
-moz-border-radius-topright: 16px;
border-top-right-radius: 16px;
}
div.right {
float: left;
padding-top: 3em;
width: 50%;
}
div.content {
height: 15em;
width: 80%;
background-color: #4f9ddf;
padding: 1em;
-webkit-border-radius: 8px;
-khtml-border-radius: 8px;
-moz-border-radius: 8px;
border-radius: 8px;
}
Я нашел решение, которое требует меньше разметки. Таким образом, вместо использования полей используются белые округленные границы, а затем мы размещаем активный li за белыми округленными границами для достижения эффекта инвертированного радиуса границы.
<ul class="selectable">
<li>
<a href="#">Title</a>
</li>
<li class="active">
<a href="#">Title</a>
</li>
<li>
<a href="#">Title</a>
</li>
<li>
<a href="#">Title</a>
</li>
</ul>
<div class="right">
<div class="content">This is content</div>
</div>
И меньше CSS тоже! (это умопомрачительно):
a { color: #000; text-decoration: none;}
ul.selectable {
padding: 1em 1em;
width: 40%;
float: left;
}
ul.selectable li {
margin: -1em 0 0 0;
border-radius: 8px;
-webkit-border-radius: 8px;
-khtml-border-radius: 8px;
-moz-border-radius: 8px;
border: solid #fff 1em;
position: relative;
}
ul.selectable li a {
background-color: #dfd24f;
padding: 1em;
display: block;
border-radius: 8px;
-webkit-border-radius: 8px;
-khtml-border-radius: 8px;
-moz-border-radius: 8px;
}
ul.selectable li.active {
margin: -1em -1em -1em 1em;
border: solid #4f9ddf 1em;
border-left: solid #fff 1em;
background-color: #4f9ddf;
position: static;
}
ul.selectable li.active a {
margin: 0 0 0 -1em;
border-left: solid #4f9ddf 1em;
background-color: #4f9ddf;
position: static;
text-indent: -1em;
}
div.right {
float: left;
padding-top: 3em;
width: 50%;
margin-left: -1em;
}
div.content {
height: 15em;
width: 80%;
background-color: #4f9ddf;
padding: 1em;
-webkit-border-radius: 8px;
-khtml-border-radius: 8px;
-moz-border-radius: 8px;
border-radius: 8px;
}
Честно говоря, я не уверен, что это лучшая версия, она делает градиентные / фоновые изображения легкими (по крайней мере, для неактивных ликов), но вы не может применить изображение / градиентный фон к телу. Это также «плохая магия» в том смысле, что она работает не интуитивно.
Этот хороший Inverse Border Radius в CSS уроке может помочь. Объясняет, как сделать обратный радиус границы для вкладок. Но он может быть легко адаптирован для оптимизации вашего CSS, поскольку он использует :after
вместо создания слишком большого количества дополнительных элементов.