টুইটারের টাইপহেড.জেএস এর পরামর্শগুলি স্টাইলড নয় (কোনও সীমানা, স্বচ্ছ পটভূমি ইত্যাদি নেই)


182

আমি টুইটারের টাইপহেড.জেএস ০.৯.৩ ব্যবহার করছি এবং মনে হয় আমার পরামর্শগুলি মোটেই স্টাইল করা হয়নি।

আমি এটি পাচ্ছি:

টাইপহেড বাগ

এর মতো কিছু পরিবর্তে: ( উদাহরণ পৃষ্ঠা থেকে নেওয়া )

টাইপহেড আদর্শ

জাভাস্ক্রিপ্ট টাইপহেড সক্ষম করে:

$('.search-typeahead').typeahead({
    name: 'videos',
    remote: {
        url: '/api/v1/internal/videos/typeahead?text=%QUERY'
    }
});

এইচটিএমএল ইনপুট উপাদান:

<input type="text" value="" id="search_keywords" class="no-clear search-typeahead"/>

অতিরিক্ত নোট:

আমি যে সাইটে কাজ করছি তাতে jQuery 1.10.1 রয়েছে এবং এটি টুইটার বুটস্ট্র্যাপ ব্যবহার করে না। এখানে সিএসএসের একগুচ্ছ রয়েছে যা আমি লিখিনি এবং এইভাবে আমার পরিচিতি নেই যার সাথে আমি হস্তক্ষেপ করছে বলে ভয় পাই, তবে এটি মনে হয় প্লাগইনটি নিজস্ব শৈলী যুক্ত করে (কোনও সহকারী। সিএসএস ফাইল নেই) তাই তাত্ত্বিকভাবে বিষয়গুলিকে ওভাররাইড করা উচিত নয় ? আমার শৈলীগুলি কেন কাজ করে তা নিয়ে আমি বিভ্রান্ত, তবে প্লাগইনটি যুক্ত হওয়াগুলি স্বচ্ছ ব্যাকগ্রাউন্ড, কোনও সীমানা ইত্যাদির পরামর্শের ফলে আসে না etc.

উত্তর:


212

সুতরাং এখন আমি যে দস্তাবেজগুলি দেখতে পাচ্ছি তা দেখুন:

ডিফল্টরূপে, typeahead.js দ্বারা নির্মিত ড্রপডাউন মেনুটি দেখতে খারাপ দেখা যাচ্ছে এবং এটি আপনার ওয়েব পৃষ্ঠার থিমের সাথে মানিয়ে যায় তা নিশ্চিত করার জন্য আপনি এটি স্টাইল করতে চাইবেন।

আমার সমাধানটি হ'ল প্রতিলিপিটি তৈরি করতে চেয়েছি এমন উদাহরণ থেকে স্টাইলিংটি অনুলিপি করা:

.tt-query, /* UPDATE: newer versions use tt-input instead of tt-query */
.tt-hint {
    width: 396px;
    height: 30px;
    padding: 8px 12px;
    font-size: 24px;
    line-height: 30px;
    border: 2px solid #ccc;
    border-radius: 8px;
    outline: none;
}

.tt-query { /* UPDATE: newer versions use tt-input instead of tt-query */
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}

.tt-hint {
    color: #999;
}

.tt-menu { /* UPDATE: newer versions use tt-menu instead of tt-dropdown-menu */
    width: 422px;
    margin-top: 12px;
    padding: 8px 0;
    background-color: #fff;
    border: 1px solid #ccc;
    border: 1px solid rgba(0, 0, 0, 0.2);
    border-radius: 8px;
    box-shadow: 0 5px 10px rgba(0,0,0,.2);
}

.tt-suggestion {
    padding: 3px 20px;
    font-size: 18px;
    line-height: 24px;
}

.tt-suggestion.tt-is-under-cursor { /* UPDATE: newer versions use .tt-suggestion.tt-cursor */
    color: #fff;
    background-color: #0097cf;

}

.tt-suggestion p {
    margin: 0;
}

19
কিছু কারণে আমার প্রস্তাবিত সম্পাদনাটি বাতিল হয়ে গেছে, তবে মনে রাখবেন যে tt-is-under-cursorক্লাসটির নাম পরিবর্তন করা হয়েছে বলে মনে হয় tt-cursor। ডকুমেন্টেশন এখানে
জো ফ্রিম্যান

6
এর tt-inputপরিবর্তে tt-query(0.10.5 হিসাবে) রয়েছে
ফিলিপ স্পিরিডোনভ

7
মন্তব্যগুলিতে পুরানো সংস্করণগুলি রাখা কি ভাল হবে না?
ওয়ার্ল্ডসায়শি

3
.tt-ড্রপডাউন-মেনু এখন .tt-মেনু
bkwdesign

1
যোগ cursor: pointer;করার জন্য .tt-is-under-cursorএকটি সঠিক কার্সার যে ব্যবহারকারীর যে তিনি ক্লিক করতে হবে বলে আছে।
লরেন্ট ডব্লিউ।

124

সুতরাং, নিম্নলিখিত শৈলীগুলি আপনাকে এই চেহারা এবং অনুভূতি দেবে। এটি অফিসিয়াল টাইপহেড উদাহরণ ওয়েবসাইট থেকে আমি যে সিএসএস এনেছি তার উপর ভিত্তি করে।

এখানে চিত্র বর্ণনা লিখুন

সিএসএস:

.tt-query {
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}

.tt-hint {
  color: #999
}

.tt-menu {    /* used to be tt-dropdown-menu in older versions */
  width: 422px;
  margin-top: 4px;
  padding: 4px 0;
  background-color: #fff;
  border: 1px solid #ccc;
  border: 1px solid rgba(0, 0, 0, 0.2);
  -webkit-border-radius: 4px;
     -moz-border-radius: 4px;
          border-radius: 4px;
  -webkit-box-shadow: 0 5px 10px rgba(0,0,0,.2);
     -moz-box-shadow: 0 5px 10px rgba(0,0,0,.2);
          box-shadow: 0 5px 10px rgba(0,0,0,.2);
}

.tt-suggestion {
  padding: 3px 20px;
  line-height: 24px;
}

.tt-suggestion.tt-cursor,.tt-suggestion:hover {
  color: #fff;
  background-color: #0097cf;

}

.tt-suggestion p {
  margin: 0;
}

এটি ধরে নেয় আপনার ইনপুটটির form-controlক্লাস হবে। আমার উদাহরণস্বরূপ, এটি এর মতো:

<input class="typeahead form-control" type="text" placeholder="States of USA">

4
একটি ত্বক দিয়ে আমার জন্য কাজ করেছেন। প্রদর্শিত .tt-dropdown-menuহয় এখন .tt-menu। উত্তরের জন্য ধন্যবাদ.
গ্রাউন্ড0জি

33

https://github.com/bassjobsen/typeahead.js-bootstrap-css/blob/master/typeaheadjs.css

অন্যগুলি দেখতে দুর্দান্ত লাগেনি, এটি দেখতে বুটস্ট্র্যাপের মতো দেখাচ্ছে।


1
বুটস্ট্র্যাপের সাথে দুর্দান্ত কাজ করে
জোসে চেরিয়ান

এটি রেল ৪.২ এবং বুটস্ট্র্যাপ-স্যাস (৩.৩..7) অটোপ্রিফিক্সার-রেলস (> = ৫.২.১) সাস (> = ৩.৩.৪) এ কোনও পরিবর্তন ছাড়াই পুরোপুরি কাজ করেছে এটি অন্যান্য কিছু সমাধানের থেকেও কিছুটা প্রতিক্রিয়াশীল friendly এছাড়াও এটির অর্থ আপনার ইনপুট বাক্সটি 100% প্রস্থের হতে পারে তাই বেশিরভাগ বিন্যাসের সাথে কাজ করা উচিত।
আরএমসিচারি

যদিও আপনি যদি ইনপুটটি 162-এর চেয়ে বেশি প্রশস্ত হয় (সর্বনিম্ন প্রস্থ এখানে ব্যবহৃত হয়) তবে আপনি প্রস্থটিও যুক্ত করতে চাইতে পারেন: 100%;
টিটি

19

টাইপহেড তাদের কিছু শ্রেণীর নাম পরিবর্তন করেছে এবং উপরের উদাহরণগুলি এখন ভুল।

এই ক্ষেত্রে:

  • পরিবর্তে .tt-suggestion.tt-is-under-cursor ব্যবহার.tt-suggestion:hover
  • পরিবর্তে .tt-dropdown-menu, ব্যবহার করুন.tt-menu

আপনি উদাহরণ পৃষ্ঠা থেকে শৈলী ধার নিতে চান , আপনি তাদের স্টাইলশিট এখানে দেখতে পারেন :

.typeahead,
.tt-query,
.tt-hint {
  width: 396px;
  height: 30px;
  padding: 8px 12px;
  font-size: 24px;
  line-height: 30px;
  border: 2px solid #ccc;
  -webkit-border-radius: 8px;
     -moz-border-radius: 8px;
          border-radius: 8px;
  outline: none;
}

.typeahead {
  background-color: #fff;
}

.typeahead:focus {
  border: 2px solid #0097cf;
}

.tt-query {
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}

.tt-hint {
  color: #999
}

.tt-menu {
  width: 422px;
  margin: 12px 0;
  padding: 8px 0;
  background-color: #fff;
  border: 1px solid #ccc;
  border: 1px solid rgba(0, 0, 0, 0.2);
  -webkit-border-radius: 8px;
     -moz-border-radius: 8px;
          border-radius: 8px;
  -webkit-box-shadow: 0 5px 10px rgba(0,0,0,.2);
     -moz-box-shadow: 0 5px 10px rgba(0,0,0,.2);
          box-shadow: 0 5px 10px rgba(0,0,0,.2);
}

.tt-suggestion {
  padding: 3px 20px;
  font-size: 18px;
  line-height: 24px;
}

.tt-suggestion:hover {
  cursor: pointer;
  color: #fff;
  background-color: #0097cf;
}

.tt-suggestion.tt-cursor {
  color: #fff;
  background-color: #0097cf;

}

.tt-suggestion p {
  margin: 0;
}

স্ট্যাক স্নিপেটে এখানে একটি ডেমো রয়েছে


2
টাইপহেডের প্রস্থকে এত ছোট করে আটকানো কি সম্ভব?
রুন জেপ্পেসেন

13

এই কোডটি আমার পক্ষে কাজ করে:

.twitter-typeahead .tt-query,
.twitter-typeahead .tt-hint {
    margin-bottom: 0;
}
.tt-hint {
    display: block;
    width: 100%;
    padding: 8px 12px;
    font-size: 14px;
    line-height: 1.428571429;
    color: #999;
    vertical-align: middle;
    background-color: #ffffff;
    border: 1px solid #cccccc;
    border-radius: 4px;
    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
    -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
          transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
}
.tt-dropdown-menu {
    min-width: 160px;
    margin-top: 2px;
    padding: 5px 0;
    background-color: #ffffff;
    border: 1px solid #cccccc;
    border: 1px solid rgba(0, 0, 0, 0.15);
    border-radius: 4px;
    -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
          box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
    background-clip: padding-box;

}
.tt-suggestion {
    display: block;
    padding: 3px 20px;
}
.tt-suggestion.tt-is-under-cursor {
    color: #fff;
    background-color: #dfdfdf;
}
.tt-suggestion.tt-is-under-cursor a {
    color: #fff;
}
.tt-suggestion p {
    margin: 0;
}

1
এই সমাধানটি ইনপুটটির প্রস্থ নির্বিশেষে কোনও কাজ করে না। ধন্যবাদ!
স্পেসসুটদিভার

Typeahead.js + BS3 + একই স্ক্রিনে ডেটাটেবলের সাথে আমার জন্য নিখুঁত কাজ করুন। ধন্যবাদ
মাইক কাস্ত্রো ডেমেরিয়া

3

যেহেতু বিএস 3 এর সাথে আমার কম পরিবেশ রয়েছে আমি জুগওয়াল্ট সিএসএস কোড নিয়েছি (এটি আরও বেশি পঠনযোগ্য শ্রেণিবিন্যাসে রেখেছি) এবং বিএস 3 এর ড্রপডাউন-মেনু থেকে স্টাইলিং দিয়ে এটি পূরণ করেছি। এটি কেবল আপনার (কাস্টমাইজড) ভেরিয়েবলগুলি অনুসরণ করছে।

    .twitter-typeahead {
      display: block;
      width: 100%; //BS 3 needs this to inherit this for children

      .tt-query,
      .tt-hint {
        margin-bottom: 0;
      }

      .tt-dropdown-menu {
        z-index: @zindex-dropdown;
        min-width: 326px;
        padding: 5px 0;
        margin: 2px 0 0; // override default ul
        font-size: @font-size-base;
        text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)
        background-color: @dropdown-bg;
        border: 1px solid @dropdown-fallback-border; // IE8 fallback
        border: 1px solid @dropdown-border;
        border-radius: @border-radius-base;
        .box-shadow(0 6px 12px rgba(0, 0, 0, .175));
        background-clip: padding-box;

        .tt-suggestions {

          .tt-suggestion {
            padding: 3px 12px;
            font-weight: normal;
            line-height: @line-height-base;
            color: @dropdown-link-color;
            white-space: nowrap; // prevent links from randomly breaking onto new lines
          }

          .tt-suggestion.tt-cursor {
            color: @dropdown-link-hover-color;
            background-color: @dropdown-link-hover-bg;
          }

          .tt-suggestion p {
            margin: 0;
          }
        }
      }
    }

1

এখানে এমন একটি scssসংস্করণ যা সম্ভব যতটা সম্ভব বুটস্ট্র্যাপ ভেরিয়েবল / ঘোষণার উপর নির্ভর করে। দুর্ভাগ্যক্রমে আপনি সাসে নেস্টেড নির্বাচকদের প্রসারিত করতে পারবেন না, অন্যথায় এটি আরও ছোট হবে:

@mixin typeahead-active() {
  // mimics  @extend .dropdown-menu > .active > a;
  color: $dropdown-link-active-color;
  text-decoration: none;
  outline: 0;
  background-color: $dropdown-link-active-bg;
}

//https://github.com/corejavascript/typeahead.js/blob/master/doc/jquery_typeahead.md#class-names
span.twitter-typeahead {

  // this is the suggested matches dropdown
  .tt-menu {
    @extend .dropdown-menu;
  }

  .tt-hint {
    color: #999
  }

  // Added to suggestion elements.
  .tt-suggestion {

    // mimic .dropdown-menu > li > a
    padding: 3px 20px;
    line-height: $line-height-base;

    // Added to suggestion element when menu cursor moves to said suggestion.
    &.tt-cursor {
      @include typeahead-active;
    }

    // Hover/focus on suggestion
    &:hover,
    &:focus {
      @include typeahead-active;
    }

    p {
      margin: 0;
    }
  }

  .input-group & {
    display: block !important;
    .tt-dropdown-menu {
      top: 32px !important;
    }
  }
  .input-group.input-group-lg & {
    .tt-dropdown-menu {
      top: 44px !important;
    }
  }
  .input-group.input-group-sm & {
    .tt-dropdown-menu {
      top: 28px !important;
    }
  }
}

1

আপনি যদি বুটস্ট্র্যাপ 4 ব্যবহার করেন তবে এটি করার জন্য এটি যথেষ্ট:

span.twitter-typeahead
  width: 100%

.tt-input
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075)

.tt-menu
  @extend .list-group
  box-shadow: 0 5px 10px rgba(0,0,0,.2)
  width: 100%

.tt-suggestion
  @extend .list-group-item

.tt-selectable
  @extend .list-group-item-action

0

আমার বিশেষ ক্ষেত্রে পরম অবস্থান এটি সমাধান করে। পরামর্শ তালিকা (টিটি-মেনু) খোলার সময় আপেক্ষিক অবস্থানগুলি অন্যান্য বুটস্ট্র্যাপ উপাদানগুলিকে নীচে ঠেলে দিছিল।

.tt-menu { 
    z-index: 2147483647;
    position: absolute;    
}

আপনি এটি উপরের উত্তরে https://stackoverflow.com/a/26934329/1225421 এ যুক্ত করতে পারেন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.